Step 1: read data and clean

# read data
# the spreadsheet has 19 metabolic measures and 5 retinal thickness
data <- as.data.frame(read_excel("/Users/jianingyao/Desktop/School/JHU/Year2_Term3/Practice_Statistical_Consulting/Project/statistical_consulting_retina_project/Data/Sachdeva_Final_datasheet_OCT_metabolic_232023.xlsx"))
# convert id and gender to factors
data$IRB <- as.factor(data$IRB)
data$gender <- as.factor(data$gender)
levels(data$gender) <- c("male", "female")
data <- mutate(data, group = ifelse(HbA1c > 6.4, "DM", ifelse(HbA1c < 5.7, "Control", "Prediabetes")))
data$group <- as.factor(data$group)

Step 2: descriptive statistics

# gender 
table(data$gender)
## 
##   male female 
##     18     22
table(data$gender)/nrow(data)
## 
##   male female 
##   0.45   0.55
# diabetes groups
table(data$group)
## 
##     Control          DM Prediabetes 
##          16          12          12
table(data$group)/nrow(data)
## 
##     Control          DM Prediabetes 
##         0.4         0.3         0.3

table 1: mean and sd of metabolic measures and retinal measures before imputation

cols_ind <- c(2, 4:112)
min_data <- apply(data[, cols_ind], 2, function(x) min(x, na.rm = TRUE))
max_data <- apply(data[, cols_ind], 2, function(x) max(x, na.rm = TRUE))
median_data <- apply(data[, cols_ind], 2, function(x) median(x, na.rm = TRUE))
mean_data <- apply(data[, cols_ind], 2, function(x) mean(x, na.rm = TRUE))
sd_data <- apply(data[, cols_ind], 2, function(x) sd(x, na.rm = TRUE))
n_data <- apply(data[, cols_ind], 2, function(x) sum(!is.na(x)))
summary <- cbind(min_data, max_data, median_data, mean_data, sd_data, n_data)
colnames(summary) <- c("Min", "Max", "Median", "Mean", "SD", "N")
round(summary,2)
##                     Min    Max Median   Mean    SD  N
## age               57.00  81.00  71.50  71.40  6.18 40
## heart_rate        50.00 100.00  69.00  70.44 10.86 39
## MAP               58.00 127.00  95.00  94.91 12.82 37
## SBP              105.00 187.00 145.50 146.40 22.48 40
## BMI               20.80  45.20  27.95  29.70  6.33 38
## HbA1c              4.90  10.00   5.85   6.29  1.27 40
## BUN                9.00  31.00  15.00  16.77  5.13 40
## Cr                 0.50   1.90   1.00   1.01  0.27 40
## BUN/Cr             9.00  26.00  16.00  17.05  4.15 40
## HDL               35.00 118.00  55.00  59.54 19.47 39
## LDL               37.00 143.00  86.00  88.16 29.12 37
## Triglycerides     98.19 265.12 136.43 146.02 42.06 39
## Cholesterol      144.03 301.71 206.83 207.35 35.94 39
## NEFA               0.45   1.71   0.98   0.99  0.25 39
## Glucose           75.85 181.71  90.49  99.58 25.62 39
## Ketone             0.02   1.47   0.09   0.15  0.23 39
## Insulin            0.97 128.85  10.21  19.12 25.36 36
## Adiponectin        1.09  32.20   8.41  11.31  8.95 39
## Leptin             1.51  65.00  22.20  25.21 16.31 39
## RAGE               3.89  39.13  12.10  12.64  5.94 39
## CSF_TOT_OD       234.00 382.00 272.00 274.51 26.89 37
## CSF_NFL_OD         8.00  18.00  13.00  12.35  2.42 37
## CSF_(GCL-IPL)_OD  23.00  65.00  33.00  36.70  8.93 37
## CSF_INL_OD        12.00  41.00  21.00  21.81  6.45 37
## CSF_ORT_OD        46.00 124.00  68.00  70.86 16.28 37
## SI_TOT_OD        296.00 370.00 329.00 333.38 16.22 37
## SI_NFL_OD         18.00  37.00  23.00  23.62  3.23 37
## SI_(GCL-IPL)_OD   72.00 113.00  89.00  88.97  8.71 37
## SI_INL_OD         33.00  52.00  40.00  41.22  4.36 37
## SI_ORT_OD         95.00 131.00 115.00 114.65  8.11 37
## SO_TOT_OD        266.00 313.00 286.00 289.03 13.63 37
## SO_NFL_OD         30.00  54.00  37.00  37.49  5.02 37
## SO_(GCL-IPL)_OD   49.00  70.00  58.00  58.41  5.63 37
## SO_INL_OD         27.00  36.00  31.00  30.68  2.19 37
## SO_ORT_OD         79.00 111.00  97.00  97.27  7.69 37
## NI_TOT_OD        298.00 380.00 334.00 336.09 17.88 35
## NI_NFL_OD         16.00  36.00  20.00  20.83  3.36 35
## NI_(GCL-IPL)_OD   73.00 117.00  89.00  88.54  9.15 35
## NI_INL_OD         33.00  52.00  41.00  41.17  4.93 35
## NI_ORT_OD        102.00 135.00 122.00 119.83  8.89 35
## NO_TOT_OD        268.00 345.00 301.00 304.20 15.97 35
## NO_NFL_OD         35.00  66.00  47.00  47.94  6.31 35
## NO_(GCL-IPL)_OD   50.00  79.00  62.00  62.03  6.89 35
## NO_INL_OD         29.00  38.00  33.00  32.89  2.32 35
## NO_ORT_OD         78.00 116.00  98.00  96.83  8.98 35
## II_TOT_OD        291.00 379.00 330.00 331.97 17.98 36
## II_NFL_OD         19.00  35.00  23.50  23.83  3.37 36
## II_(GCL-IPL)_OD   70.00 111.00  87.00  88.58  9.36 36
## II_INL_OD         34.00  49.00  40.50  40.72  4.27 36
## II_ORT_OD         96.00 127.00 115.00 114.06  8.72 36
## IO_TOT_OD        252.00 308.00 279.00 281.42 15.55 36
## IO_NFL_OD         18.00  52.00  37.50  37.81  6.88 36
## IO_(GCL-IPL)_OD   48.00  72.00  56.50  58.25  6.38 36
## IO_INL_OD         26.00  37.00  31.00  30.72  2.43 36
## IO_ORT_OD         75.00 108.00  91.50  91.50  8.15 36
## TI_TOT_OD        284.00 380.00 321.00 322.86 18.73 37
## TI_NFL_OD         11.00  23.00  17.00  16.92  1.96 37
## TI_(GCL-IPL)_OD   66.00 110.00  84.00  84.81 10.26 37
## TI_INL_OD         31.00  49.00  38.00  38.46  4.27 37
## TI_ORT_OD         97.00 133.00 117.00 117.30  7.80 37
## TO_TOT_OD        253.00 307.00 272.00 275.11 14.43 37
## TO_NFL_OD         15.00  26.00  18.00  18.70  1.97 37
## TO_(GCL-IPL)_OD   51.00  74.00  64.00  63.78  6.00 37
## TO_INL_OD         28.00  38.00  32.00  32.41  2.55 37
## TO_ORT_OD         75.00 113.00  95.00  95.41  7.87 37
## CSF_TOT_OS       231.00 356.00 276.00 276.53 25.19 38
## CSF_NFL_OS         8.00  35.00  13.00  13.39  4.06 38
## CSF_(GCL-IPL)_OS  23.00  91.00  36.50  37.66 11.84 38
## CSF_INL_OS        10.00  37.00  22.00  22.29  6.18 38
## CSF_ORT_OS       113.00 166.00 131.50 134.47 11.50 38
## SI_TOT_OS        301.00 350.00 331.00 330.65 12.48 37
## SI_NFL_OS         19.00  32.00  23.00  23.46  3.05 37
## SI_(GCL-IPL)_OS   75.00  98.00  86.00  86.19  7.11 37
## SI_INL_OS         33.00  55.00  41.00  41.24  4.41 37
## SI_ORT_OS         92.00 136.00 114.00 114.59  9.33 37
## SO_TOT_OS        270.00 340.00 285.00 288.84 14.18 37
## SO_NFL_OS         29.00  53.00  36.00  37.78  5.71 37
## SO_(GCL-IPL)_OS   48.00  76.00  57.00  57.89  5.73 37
## SO_INL_OS         25.00  37.00  30.00  30.62  2.56 37
## SO_ORT_OS         77.00 120.00  97.00  97.76  8.24 37
## NI_TOT_OS        302.00 354.00 333.50 332.92 13.07 36
## NI_NFL_OS         16.00  48.00  20.00  21.17  5.16 36
## NI_(GCL-IPL)_OS   71.00  99.00  86.50  86.72  8.32 36
## NI_INL_OS         34.00  55.00  40.50  41.06  4.80 36
## NI_ORT_OS        104.00 140.00 117.50 118.36  9.26 36
## NO_TOS_OS        267.00 339.00 298.00 299.19 13.82 36
## NO_NFL_OS         35.00  84.00  47.00  49.00  9.10 36
## NO_GCL-IPL)_OS    49.00  71.00  59.50  58.86  5.33 36
## NO_INL_OS         27.00  45.00  33.00  32.64  3.24 36
## NO_ORT_OS          0.00 128.00  94.00  91.76 18.25 37
## II_TOT_OS        293.00 353.00 327.00 327.16 13.54 38
## II_NFL_OS         18.00  48.00  23.00  24.13  4.89 38
## II_(GCL-IPL)_OS   68.00  98.00  84.00  84.16  7.81 38
## II_INL_OS         31.00  51.00  40.00  40.92  4.53 38
## II_ORT_OS         94.00 135.00 113.00 113.45 10.10 38
## IO_TOT_OS        250.00 309.00 279.00 279.63 13.58 38
## IO_NFL_OS         29.00  63.00  38.00  38.32  6.73 38
## IO_(GCL-IPL)_OS   45.00  72.00  54.50  56.42  5.58 38
## IO_INL_OS         25.00  35.00  30.50  30.37  2.25 38
## IO_ORT_OS         74.00 203.00  90.50  93.87 20.08 38
## TI_TOT_OS        289.00 345.00 320.00 320.05 13.79 37
## TI_NFL_OS         15.00  27.00  17.00  17.81  2.15 37
## TI_(GCL-IPL)_OS   67.00  94.00  79.00  80.76  8.00 37
## TI_INL_OS         28.00  45.00  37.00  36.76  3.97 37
## TI_ORT_OS        101.00 150.00 116.00 118.43  9.35 37
## TO_TOT_OS        252.00 317.00 274.00 278.22 15.03 37
## TO_NFL_OS         17.00  29.00  20.00  20.05  2.13 37
## TO_(GCL-IPL)_OS   54.00  78.00  62.00  63.57  6.07 37
## TO_INL_OS         28.00  37.00  32.00  32.14  2.18 37
## TO_OR_OS          75.00 116.00  95.00  97.05  8.52 37
summary <- round(summary,2)
write.csv(summary, "summary_beforeImp.csv", row.names = TRUE, col.names = TRUE)
## Warning in write.csv(summary, "summary_beforeImp.csv", row.names = TRUE, :
## attempt to set 'col.names' ignored

summary by groups before imputation

cols_ind <- c(4:113)
summary_group <- data[cols_ind] %>% 
  group_by(group) %>%
    summarize_all(list(median = ~ median(., na.rm = TRUE), 
                     mean = ~ mean(., na.rm = TRUE), 
                     sd = ~ sd(., na.rm = TRUE)))
as.data.frame(t(summary_group))
##                                 V1         V2          V3
## group                      Control         DM Prediabetes
## heart_rate_median             68.0       77.5        66.0
## MAP_median                      95         95         100
## SBP_median                     150        139         152
## BMI_median                   27.15      29.80       25.70
## HbA1c_median                  5.40       7.55        6.00
## BUN_median                    14.0       16.5        14.5
## Cr_median                     0.95       1.00        0.95
## BUN/Cr_median                 15.5       19.0        16.0
## HDL_median                    60.5       52.0        52.0
## LDL_median                    93.5       63.5        93.0
## Triglycerides_median      128.6820   137.9845    140.8270
## Cholesterol_median        224.5730   191.1265    208.8735
## NEFA_median                  0.894      1.000       0.997
## Glucose_median             86.3410   108.1710     90.8535
## Ketone_median               0.0630     0.0945      0.0845
## Insulin_median              12.718     16.922       9.219
## Adiponectin_median          8.4130     7.2545      9.0810
## Leptin_median               18.479     24.794      21.736
## RAGE_median                11.3010    13.0220     11.2445
## CSF_TOT_OD_median            279.0      273.5       263.5
## CSF_NFL_OD_median             14.0       12.5        12.0
## CSF_(GCL-IPL)_OD_median       35.0       36.5        33.0
## CSF_INL_OD_median             21.0       24.5        17.0
## CSF_ORT_OD_median             68.0       75.5        64.5
## SI_TOT_OD_median               329        336         326
## SI_NFL_OD_median              24.0       23.5        23.0
## SI_(GCL-IPL)_OD_median        89.0       89.5        88.5
## SI_INL_OD_median                41         40          40
## SI_ORT_OD_median               117        116         114
## SO_TOT_OD_median             286.0      287.0       281.5
## SO_NFL_OD_median                38         36          37
## SO_(GCL-IPL)_OD_median        57.0       58.0        59.5
## SO_INL_OD_median              31.0       30.5        30.5
## SO_ORT_OD_median              98.0       98.5        93.5
## NI_TOT_OD_median               335        340         324
## NI_NFL_OD_median              21.5       20.0        20.0
## NI_(GCL-IPL)_OD_median        90.5       89.5        87.0
## NI_INL_OD_median              41.5       40.5        40.0
## NI_ORT_OD_median             123.5      122.5       116.0
## NO_TOT_OD_median               303        303         299
## NO_NFL_OD_median              49.5       46.5        45.0
## NO_(GCL-IPL)_OD_median        57.5       63.0        62.0
## NO_INL_OD_median              34.0       32.5        33.0
## NO_ORT_OD_median              99.0       97.5        91.0
## II_TOT_OD_median             333.5      333.0       323.5
## II_NFL_OD_median              23.5       23.5        23.5
## II_(GCL-IPL)_OD_median          86         87          88
## II_INL_OD_median                42         39          40
## II_ORT_OD_median             117.0      118.0       112.5
## IO_TOT_OD_median             276.5      281.0       277.5
## IO_NFL_OD_median                36         38          37
## IO_(GCL-IPL)_OD_median        57.0       58.5        56.0
## IO_INL_OD_median              31.5       30.0        30.5
## IO_ORT_OD_median              93.0       91.5        89.0
## TI_TOT_OD_median             324.0      324.5       313.0
## TI_NFL_OD_median              16.0       17.0        16.5
## TI_(GCL-IPL)_OD_median        86.0       84.5        81.5
## TI_INL_OD_median              38.0       38.0        36.5
## TI_ORT_OD_median             119.0      115.5       115.5
## TO_TOT_OD_median               274        275         269
## TO_NFL_OD_median                18         19          18
## TO_(GCL-IPL)_OD_median          63         65          63
## TO_INL_OD_median              32.0       32.5        32.0
## TO_ORT_OD_median              97.0       94.5        92.0
## CSF_TOT_OS_median            278.5      289.5       259.5
## CSF_NFL_OS_median               13         13          12
## CSF_(GCL-IPL)_OS_median       37.5       38.0        34.0
## CSF_INL_OS_median             21.5       25.5        21.0
## CSF_ORT_OS_median            136.0      133.5       131.0
## SI_TOT_OS_median             325.0      340.0       325.5
## SI_NFL_OS_median              23.5       22.0        23.0
## SI_(GCL-IPL)_OS_median        85.5       86.0        87.0
## SI_INL_OS_median              42.0       41.0        40.5
## SI_ORT_OS_median             115.5      117.0       113.0
## SO_TOT_OS_median             283.0      291.0       285.5
## SO_NFL_OS_median              35.5       36.0        37.0
## SO_(GCL-IPL)_OS_median        56.0       61.0        57.5
## SO_INL_OS_median                31         30          29
## SO_ORT_OS_median              96.5       99.0        96.5
## NI_TOT_OS_median             330.5      339.0       326.0
## NI_NFL_OS_median                20         20          19
## NI_(GCL-IPL)_OS_median          88         88          85
## NI_INL_OS_median              42.5       40.0        40.0
## NI_ORT_OS_median               122        118         114
## NO_TOS_OS_median               296        300         297
## NO_NFL_OS_median              48.5       52.0        46.0
## NO_GCL-IPL)_OS_median           58         60          60
## NO_INL_OS_median                33         33          32
## NO_ORT_OS_median                95         94          89
## II_TOT_OS_median             323.5      329.5       326.0
## II_NFL_OS_median              23.0       23.5        23.0
## II_(GCL-IPL)_OS_median        84.0       83.0        86.5
## II_INL_OS_median              41.0       40.5        40.0
## II_ORT_OS_median             114.5      114.5       110.0
## IO_TOT_OS_median               279        279         279
## IO_NFL_OS_median              39.0       37.5        37.5
## IO_(GCL-IPL)_OS_median        54.5       54.5        55.5
## IO_INL_OS_median              31.0       30.5        30.0
## IO_ORT_OS_median              90.5       89.5        90.5
## TI_TOT_OS_median             314.5      324.0       320.0
## TI_NFL_OS_median                17         17          17
## TI_(GCL-IPL)_OS_median        80.0       79.0        77.5
## TI_INL_OS_median              36.5       37.0        37.0
## TI_ORT_OS_median             116.5      120.0       114.5
## TO_TOT_OS_median             272.5      284.0       274.0
## TO_NFL_OS_median              20.0       20.0        19.5
## TO_(GCL-IPL)_OS_median        61.5       64.0        61.0
## TO_INL_OS_median              33.0       33.0        30.5
## TO_OR_OS_median               95.5      100.0        93.5
## heart_rate_mean           65.68750   78.50000    68.54545
## MAP_mean                  97.31250   90.40909    96.00000
## SBP_mean                  151.6250   137.3333    148.5000
## BMI_mean                  29.66250   31.62545    27.81818
## HbA1c_mean                5.306250   7.891667    5.991667
## BUN_mean                   15.3125    18.5000     17.0000
## Cr_mean                  0.9937500  0.9833333   1.0500000
## BUN/Cr_mean               15.81250   19.08333    16.66667
## HDL_mean                  66.06250   55.50000    54.45455
## LDL_mean                  99.37500   64.80000    93.09091
## Triglycerides_mean        142.1453   148.8373    148.0620
## Cholesterol_mean          226.0751   186.9147    204.3800
## NEFA_mean                0.9403333  1.0457500   0.9808333
## Glucose_mean              92.39027  117.94717    90.20325
## Ketone_mean             0.22693333 0.11316667  0.08341667
## Insulin_mean              13.14214   26.89909    18.96400
## Adiponectin_mean          11.78700   10.02042    12.01775
## Leptin_mean               27.14433   24.11900    23.88725
## RAGE_mean                 11.48153   15.73908    10.99292
## CSF_TOT_OD_mean           283.2667   273.8333    262.2000
## CSF_NFL_OD_mean           13.26667   11.83333    11.60000
## CSF_(GCL-IPL)_OD_mean        40.20      35.25       33.20
## CSF_INL_OD_mean              22.40      22.75       19.80
## CSF_ORT_OD_mean           75.86667   69.83333    64.60000
## SI_TOT_OD_mean            334.4667   334.0833    330.9000
## SI_NFL_OD_mean            24.26667   23.41667    22.90000
## SI_(GCL-IPL)_OD_mean      88.06667   89.50000    89.70000
## SI_INL_OD_mean            41.46667   41.41667    40.60000
## SI_ORT_OD_mean            115.1333   114.8333    113.7000
## SO_TOT_OD_mean            289.4667   289.7500    287.5000
## SO_NFL_OD_mean            38.80000   36.33333    36.90000
## SO_(GCL-IPL)_OD_mean      57.13333   59.41667    59.10000
## SO_INL_OD_mean                30.8       30.5        30.7
## SO_ORT_OD_mean            97.46667   97.66667    96.50000
## NI_TOT_OD_mean            340.2143   337.4167    327.8889
## NI_NFL_OD_mean            21.92857   20.41667    19.66667
## NI_(GCL-IPL)_OD_mean      89.42857   88.25000    87.55556
## NI_INL_OD_mean            41.42857   41.58333    40.22222
## NI_ORT_OD_mean            120.9286   121.0000    116.5556
## NO_TOT_OD_mean            306.5714   305.0000    299.4444
## NO_NFL_OD_mean            49.57143   46.75000    47.00000
## NO_(GCL-IPL)_OD_mean      61.42857   62.58333    62.22222
## NO_INL_OD_mean            33.57143   32.66667    32.11111
## NO_ORT_OD_mean            97.28571   97.91667    94.66667
## II_TOT_OD_mean            335.2857   332.4167    326.8000
## II_NFL_OD_mean                24.5       24.0        22.7
## II_(GCL-IPL)_OD_mean      89.07143   88.08333    88.50000
## II_INL_OD_mean            41.78571   39.91667    40.20000
## II_ORT_OD_mean            114.6429   115.5000    111.5000
## IO_TOT_OD_mean            283.4286   282.0833    277.8000
## IO_NFL_OD_mean            38.28571   38.08333    36.80000
## IO_(GCL-IPL)_OD_mean      58.92857   58.41667    57.10000
## IO_INL_OD_mean            31.14286   30.41667    30.50000
## IO_ORT_OD_mean            92.71429   91.25000    90.10000
## TI_TOT_OD_mean            326.6667   323.8333    316.0000
## TI_NFL_OD_mean            16.73333   17.25000    16.80000
## TI_(GCL-IPL)_OD_mean      86.66667   84.66667    82.20000
## TI_INL_OD_mean            38.66667   39.08333    37.40000
## TI_ORT_OD_mean            118.6667   117.0833    115.5000
## TO_TOT_OD_mean            275.4667   276.2500    273.2000
## TO_NFL_OD_mean            18.80000   18.91667    18.30000
## TO_(GCL-IPL)_OD_mean      63.20000   64.58333    63.70000
## TO_INL_OD_mean            32.53333   32.25000    32.40000
## TO_ORT_OD_mean            96.26667   95.33333    94.20000
## CSF_TOT_OS_mean           278.4286   286.0000    264.8333
## CSF_NFL_OS_mean           13.28571   14.50000    12.41667
## CSF_(GCL-IPL)_OS_mean     38.64286   40.66667    33.50000
## CSF_INL_OS_mean           21.78571   25.25000    19.91667
## CSF_ORT_OS_mean           135.2857   136.0000    132.0000
## SI_TOT_OS_mean            330.1429   335.8182    326.5000
## SI_NFL_OS_mean            23.85714   23.54545    22.91667
## SI_(GCL-IPL)_OS_mean      85.78571   86.63636    86.25000
## SI_INL_OS_mean            41.71429   42.00000    40.00000
## SI_ORT_OS_mean            113.9286   117.4545    112.7500
## SO_TOT_OS_mean            286.1429   295.2727    286.0833
## SO_NFL_OS_mean            37.92857   38.18182    37.25000
## SO_(GCL-IPL)_OS_mean      55.85714   60.36364    58.00000
## SO_INL_OS_mean            30.71429   31.18182    30.00000
## SO_ORT_OS_mean            97.07143  100.09091    96.41667
## NI_TOT_OS_mean            334.4286   336.9091    327.0000
## NI_NFL_OS_mean            20.78571   23.45455    19.36364
## NI_(GCL-IPL)_OS_mean      87.21429   86.00000    86.81818
## NI_INL_OS_mean            41.85714   41.90909    39.18182
## NI_ORT_OS_mean            118.7857   119.3636    116.8182
## NO_TOS_OS_mean            298.7857   304.1818    294.7273
## NO_NFL_OS_mean            48.50000   50.72727    47.90909
## NO_GCL-IPL)_OS_mean       58.21429   59.45455    59.09091
## NO_INL_OS_mean            33.07143   32.90909    31.81818
## NO_ORT_OS_mean            88.26667   96.18182    92.09091
## II_TOT_OS_mean            327.1429   329.9167    324.4167
## II_NFL_OS_mean            23.78571   25.16667    23.50000
## II_(GCL-IPL)_OS_mean      84.50000   82.08333    85.83333
## II_INL_OS_mean            41.85714   41.50000    39.25000
## II_ORT_OS_mean            112.2857   115.7500    112.5000
## IO_TOT_OS_mean            279.3571   282.5000    277.0833
## IO_NFL_OS_mean            37.92857   39.08333    38.00000
## IO_(GCL-IPL)_OS_mean      56.28571   56.50000    56.50000
## IO_INL_OS_mean            31.14286   30.00000    29.83333
## IO_ORT_OS_mean            90.35714   92.16667    99.66667
## TI_TOT_OS_mean            319.8571   323.1818    317.4167
## TI_NFL_OS_mean            17.64286   18.45455    17.41667
## TI_(GCL-IPL)_OS_mean      81.42857   80.00000    80.66667
## TI_INL_OS_mean            37.14286   37.90909    35.25000
## TI_ORT_OS_mean            117.7143   120.1818    117.6667
## TO_TOT_OS_mean            275.5714   283.4545    276.5000
## TO_NFL_OS_mean            19.71429   20.72727    19.83333
## TO_(GCL-IPL)_OS_mean      62.28571   65.63636    63.16667
## TO_INL_OS_mean            32.50000   32.63636    31.25000
## TO_OR_OS_mean             96.50000   99.09091    95.83333
## heart_rate_sd             7.905431  12.551711    7.916611
## MAP_sd                   11.694550  16.466357    9.591663
## SBP_sd                    25.42669   18.99442    20.37155
## BMI_sd                    7.602182   6.166127    3.949891
## HbA1c_sd                 0.2594064  1.1277156   0.2234373
## BUN_sd                    4.045059   5.213619    6.105139
## Cr_sd                    0.2264766  0.2480225   0.3450955
## BUN/Cr_sd                 3.816084   2.998737    5.033223
## HDL_sd                    22.35910   15.44197    17.68255
## LDL_sd                    29.01235   16.54489    27.75051
## Triglycerides_sd          45.68817   43.13420    39.51485
## Cholesterol_sd            41.57926   23.37620    27.78883
## NEFA_sd                  0.2284696  0.3132745   0.2202968
## Glucose_sd                25.44691   28.32414    10.32736
## Ketone_sd               0.36366183 0.06555474  0.04030894
## Insulin_sd                9.110366  26.348271   36.499134
## Adiponectin_sd            8.883801   9.339039    9.280763
## Leptin_sd                 22.59918   12.33036    10.42255
## RAGE_sd                   3.148879   8.984779    3.663867
## CSF_TOT_OD_sd             35.28550   20.82757    11.38029
## CSF_NFL_OD_sd             2.491892   2.037527    2.503331
## CSF_(GCL-IPL)_OD_sd      11.213512   7.072675    5.050853
## CSF_INL_OD_sd             7.038669   5.545268    6.746192
## CSF_ORT_OD_sd             19.89568   13.62373    11.41344
## SI_TOT_OD_sd              16.47018   16.77367    16.62963
## SI_NFL_OD_sd              4.096456   3.028901    1.728840
## SI_(GCL-IPL)_OD_sd        9.391993   9.298094    7.645623
## SI_INL_OD_sd              4.257207   4.679905    4.526465
## SI_ORT_OD_sd              9.687007   7.234178    7.211873
## SO_TOT_OD_sd              12.74400   14.52975    15.13825
## SO_NFL_OD_sd              6.710333   3.725425    2.960856
## SO_(GCL-IPL)_OD_sd        5.938574   5.664215    5.321863
## SO_INL_OD_sd              2.007130   2.022600    2.790858
## SO_ORT_OD_sd              7.558029   7.749878    8.553752
## NI_TOT_OD_sd              20.50208   15.28789    15.67996
## NI_NFL_OD_sd              4.598734   1.928652    2.179449
## NI_(GCL-IPL)_OD_sd       10.725342   8.400487    8.323327
## NI_INL_OD_sd              4.449966   4.944388    6.016182
## NI_ORT_OD_sd             10.484159   8.168676    7.001984
## NO_TOT_OD_sd              18.19431   15.36229    13.60249
## NO_NFL_OD_sd              7.470087   5.940998    4.690416
## NO_(GCL-IPL)_OD_sd        8.563916   6.501165    4.841946
## NO_INL_OD_sd              2.680823   2.015095    2.027588
## NO_ORT_OD_sd              8.818063   9.238834    9.578622
## II_TOT_OD_sd              20.05542   17.46403    16.01943
## II_NFL_OD_sd              4.127767   3.190896    2.213594
## II_(GCL-IPL)_OD_sd       11.323660   8.596599    8.045012
## II_INL_OD_sd              4.117104   4.907477    3.765339
## II_ORT_OD_sd              9.660444   7.716570    8.822320
## IO_TOT_OD_sd              14.88786   15.18647    17.79388
## IO_NFL_OD_sd              7.268780   5.264950    8.508819
## IO_(GCL-IPL)_OD_sd        6.955510   6.359793    6.045200
## IO_INL_OD_sd              2.070197   2.274696    3.171050
## IO_ORT_OD_sd              7.770047   8.225515    9.170605
## TI_TOT_OD_sd              21.25245   16.92139    16.52607
## TI_NFL_OD_sd              2.463060   1.912875    1.135292
## TI_(GCL-IPL)_OD_sd       11.555250   9.354953    9.647107
## TI_INL_OD_sd              3.976119   5.053502    3.893014
## TI_ORT_OD_sd              9.393513   5.915439    7.531416
## TO_TOT_OD_sd              12.33964   14.14294    18.58195
## TO_NFL_OD_sd              2.336053   1.831955    1.636392
## TO_(GCL-IPL)_OD_sd        5.334524   6.200562    7.165504
## TO_INL_OD_sd              2.503331   2.301185    3.134042
## TO_ORT_OD_sd              8.163216   7.075352    8.941787
## CSF_TOT_OS_sd             21.06296   30.51378    20.68303
## CSF_NFL_OS_sd             2.163636   6.612660    1.975225
## CSF_(GCL-IPL)_OS_sd       7.611804  17.849540    7.403930
## CSF_INL_OS_sd             4.964157   7.059809    5.775471
## CSF_ORT_OS_sd             10.31376   11.39378    13.40285
## SI_TOT_OS_sd              12.15197   14.29558    10.16679
## SI_NFL_OS_sd              3.109715   3.531675    2.678478
## SI_(GCL-IPL)_OS_sd        7.234305   8.151966    6.552238
## SI_INL_OS_sd              4.268463   5.744563    3.104249
## SI_ORT_OS_sd             10.049602   9.842394    8.080560
## SO_TOT_OS_sd             10.067901  20.533343    9.802211
## SO_NFL_OS_sd              7.415828   5.437245    3.768892
## SO_(GCL-IPL)_OS_sd        4.817550   7.159228    4.690416
## SO_INL_OS_sd              2.812843   2.821992    2.044949
## SO_ORT_OS_sd              8.222523  10.133652    6.402533
## NI_TOT_OS_sd              14.11336   13.16400    10.30534
## NI_NFL_OS_sd              2.006856   8.430464    2.730301
## NI_(GCL-IPL)_OS_sd        7.637746  10.334409    7.652688
## NI_INL_OS_sd              4.896736   6.057302    2.713602
## NI_ORT_OS_sd              8.980137   9.982712    9.568889
## NO_TOS_OS_sd             13.486053  18.015650    7.603827
## NO_NFL_OS_sd              7.046549  13.557956    6.057302
## NO_GCL-IPL)_OS_sd         4.995052   6.919012    4.253341
## NO_INL_OS_sd              2.615465   4.657350    2.272364
## NO_ORT_OS_sd             25.808267  13.570690    6.564367
## II_TOT_OS_sd              14.65951   14.93902    11.09839
## II_NFL_OS_sd              3.641187   7.673251    2.067058
## II_(GCL-IPL)_OS_sd        7.572724   9.307459    6.562058
## II_INL_OS_sd              4.452435   5.728716    2.895922
## II_ORT_OS_sd             10.373254   9.696532   10.638694
## IO_TOT_OS_sd              12.38862   16.54471    12.19880
## IO_NFL_OS_sd              6.509925   9.159777    4.177864
## IO_(GCL-IPL)_OS_sd        4.842577   7.452882    4.641708
## IO_INL_OS_sd              1.561909   2.796101    2.249579
## IO_ORT_OS_sd              7.550926  10.861386   33.399329
## TI_TOT_OS_sd              13.69367   14.81093    13.54762
## TI_NFL_OS_sd             1.6458406  3.3574882   0.9962049
## TI_(GCL-IPL)_OS_sd        8.083357   8.921883    7.655460
## TI_INL_OS_sd              3.899845   4.085451    3.792936
## TI_ORT_OS_sd              8.712754   6.968761   12.160542
## TO_TOT_OS_sd              12.53128   17.55200    15.30597
## TO_NFL_OS_sd              1.540658   3.258555    1.337116
## TO_(GCL-IPL)_OS_sd        5.209881   7.352180    5.718126
## TO_INL_OS_sd              2.312175   2.062655    2.005674
## TO_OR_OS_sd               8.492078   8.848215    8.674239
write.csv(t(summary_group), "summary_group_beforeImp.csv", row.names = TRUE, col.names = TRUE)
## Warning in write.csv(t(summary_group), "summary_group_beforeImp.csv", row.names
## = TRUE, : attempt to set 'col.names' ignored

replace missing values in metabolic measures with median

met_list <- c("heart_rate","MAP","SBP","BMI","HbA1c","BUN","Cr","BUN/Cr","HDL","LDL","Triglycerides","Cholesterol","NEFA","Glucose","Ketone","Insulin","Adiponectin","Leptin","RAGE")
data.median <- data
for (col in met_list) {
  data.median[is.na(data.median[[col]]), col] <- median(data.median[[col]], na.rm = TRUE)
}

replace missing values in metabolic and retinal measures by knn

# Perform KNN imputation with default settings
df.imp <- kNN(data)
df.imp <- df.imp[1:113]

table 1: mean and sd of metabolic measures and retinal measures after imputation

cols_ind <- c(2, 4:112)
min_data <- apply(df.imp[, cols_ind], 2, function(x) min(x, na.rm = TRUE))
max_data <- apply(df.imp[, cols_ind], 2, function(x) max(x, na.rm = TRUE))
median_data <- apply(df.imp[, cols_ind], 2, function(x) median(x, na.rm = TRUE))
mean_data <- apply(df.imp[, cols_ind], 2, function(x) mean(x, na.rm = TRUE))
sd_data <- apply(df.imp[, cols_ind], 2, function(x) sd(x, na.rm = TRUE))
n_data <- apply(df.imp[, cols_ind], 2, function(x) sum(!is.na(x)))
summary <- cbind(min_data, max_data, median_data, mean_data, sd_data, n_data)
colnames(summary) <- c("Min", "Max", "Median", "Mean", "SD", "N")
round(summary,2)
##                     Min    Max Median   Mean    SD  N
## age               57.00  81.00  71.50  71.40  6.18 40
## heart_rate        50.00 100.00  69.00  70.58 10.75 40
## MAP               58.00 127.00  95.50  95.09 12.35 40
## SBP              105.00 187.00 145.50 146.40 22.48 40
## BMI               20.80  45.20  27.95  29.66  6.21 40
## HbA1c              4.90  10.00   5.85   6.29  1.27 40
## BUN                9.00  31.00  15.00  16.77  5.13 40
## Cr                 0.50   1.90   1.00   1.01  0.27 40
## BUN/Cr             9.00  26.00  16.00  17.05  4.15 40
## HDL               35.00 118.00  55.00  59.42 19.24 40
## LDL               37.00 143.00  86.00  89.12 28.54 40
## Triglycerides     98.19 265.12 137.21 145.95 41.52 40
## Cholesterol      144.03 301.71 207.51 207.46 35.48 40
## NEFA               0.45   1.71   0.99   0.99  0.25 40
## Glucose           75.85 181.71  90.61  99.55 25.29 40
## Ketone             0.02   1.47   0.09   0.15  0.23 40
## Insulin            0.97 128.85   9.71  18.26 24.17 40
## Adiponectin        1.09  32.20   8.26  11.19  8.86 40
## Leptin             1.51  65.00  23.12  25.44 16.17 40
## RAGE               3.89  39.13  12.01  12.59  5.87 40
## CSF_TOT_OD       234.00 382.00 271.00 274.10 25.88 40
## CSF_NFL_OD         8.00  18.00  13.00  12.40  2.33 40
## CSF_(GCL-IPL)_OD  23.00  65.00  33.00  36.42  8.64 40
## CSF_INL_OD        12.00  41.00  21.50  21.75  6.21 40
## CSF_ORT_OD        46.00 124.00  68.00  70.75 15.67 40
## SI_TOT_OD        296.00 370.00 332.00 334.68 16.28 40
## SI_NFL_OD         18.00  37.00  23.00  23.50  3.13 40
## SI_(GCL-IPL)_OD   72.00 113.00  89.00  88.92  8.54 40
## SI_INL_OD         33.00  52.00  40.50  41.20  4.19 40
## SI_ORT_OD         95.00 131.00 116.00 114.97  7.88 40
## SO_TOT_OD        266.00 313.00 287.00 290.40 14.01 40
## SO_NFL_OD         30.00  54.00  37.00  37.38  4.86 40
## SO_(GCL-IPL)_OD   49.00  70.00  57.50  58.40  5.57 40
## SO_INL_OD         27.00  36.00  31.00  30.82  2.17 40
## SO_ORT_OD         79.00 111.00  98.50  97.97  7.94 40
## NI_TOT_OD        298.00 380.00 335.50 336.88 17.32 40
## NI_NFL_OD         16.00  36.00  20.00  20.77  3.15 40
## NI_(GCL-IPL)_OD   73.00 117.00  89.00  88.47  8.69 40
## NI_INL_OD         33.00  52.00  41.00  41.20  4.61 40
## NI_ORT_OD        102.00 135.00 122.00 120.58  8.57 40
## NO_TOT_OD        268.00 345.00 301.00 304.92 15.93 40
## NO_NFL_OD         35.00  66.00  45.00  47.48  6.02 40
## NO_(GCL-IPL)_OD   50.00  79.00  62.00  62.02  6.59 40
## NO_INL_OD         29.00  38.00  33.00  33.08  2.26 40
## NO_ORT_OD         78.00 116.00  98.00  97.65  8.84 40
## II_TOT_OD        291.00 379.00 330.00 331.90 17.18 40
## II_NFL_OD         19.00  35.00  23.00  23.68  3.23 40
## II_(GCL-IPL)_OD   70.00 111.00  86.00  87.80  9.21 40
## II_INL_OD         34.00  49.00  41.00  40.83  4.08 40
## II_ORT_OD         96.00 127.00 116.50 114.60  8.49 40
## IO_TOT_OD        252.00 308.00 279.00 280.95 14.87 40
## IO_NFL_OD         18.00  52.00  36.50  37.35  6.68 40
## IO_(GCL-IPL)_OD   48.00  72.00  56.00  57.90  6.14 40
## IO_INL_OD         26.00  37.00  31.00  30.88  2.37 40
## IO_ORT_OD         75.00 108.00  92.00  91.75  7.81 40
## TI_TOT_OD        284.00 380.00 321.00 322.78 18.07 40
## TI_NFL_OD         11.00  23.00  17.00  16.98  1.90 40
## TI_(GCL-IPL)_OD   66.00 110.00  83.00  84.10 10.22 40
## TI_INL_OD         31.00  49.00  38.00  38.48  4.10 40
## TI_ORT_OD         97.00 133.00 118.50 117.55  7.58 40
## TO_TOT_OD        253.00 307.00 272.00 274.95 13.91 40
## TO_NFL_OD         15.00  26.00  18.00  18.65  1.92 40
## TO_(GCL-IPL)_OD   51.00  74.00  63.00  63.58  5.83 40
## TO_INL_OD         28.00  38.00  32.00  32.42  2.47 40
## TO_ORT_OD         75.00 113.00  96.00  95.62  7.61 40
## CSF_TOT_OS       231.00 356.00 277.00 277.10 24.79 40
## CSF_NFL_OS         8.00  35.00  13.00  13.50  3.99 40
## CSF_(GCL-IPL)_OS  23.00  91.00  36.50  37.50 11.58 40
## CSF_INL_OS        10.00  37.00  22.00  22.55  6.13 40
## CSF_ORT_OS       113.00 166.00 133.50 134.85 11.33 40
## SI_TOT_OS        301.00 350.00 331.00 331.88 12.76 40
## SI_NFL_OS         19.00  32.00  23.00  23.50  2.94 40
## SI_(GCL-IPL)_OS   75.00  98.00  87.00  86.47  6.91 40
## SI_INL_OS         33.00  55.00  41.00  41.27  4.24 40
## SI_ORT_OS         92.00 136.00 115.00 114.97  9.07 40
## SO_TOT_OS        270.00 340.00 286.50 290.25 14.53 40
## SO_NFL_OS         29.00  53.00  36.00  37.58  5.53 40
## SO_(GCL-IPL)_OS   48.00  76.00  57.50  58.35  5.75 40
## SO_INL_OS         25.00  37.00  31.00  30.88  2.62 40
## SO_ORT_OS         77.00 120.00  98.00  98.30  8.15 40
## NI_TOT_OS        302.00 354.00 335.00 334.60 13.42 40
## NI_NFL_OS         16.00  48.00  20.00  21.05  4.90 40
## NI_(GCL-IPL)_OS   71.00  99.00  88.50  87.33  8.11 40
## NI_INL_OS         34.00  55.00  41.00  41.33  4.74 40
## NI_ORT_OS        104.00 140.00 119.50 119.12  9.07 40
## NO_TOS_OS        267.00 339.00 299.50 301.22 14.47 40
## NO_NFL_OS         35.00  84.00  50.50  49.30  8.67 40
## NO_GCL-IPL)_OS    49.00  71.00  60.00  59.23  5.24 40
## NO_INL_OS         27.00  45.00  33.00  32.90  3.19 40
## NO_ORT_OS          0.00 128.00  95.00  92.55 17.76 40
## II_TOT_OS        293.00 353.00 327.50 328.20 13.97 40
## II_NFL_OS         18.00  48.00  23.00  24.10  4.80 40
## II_(GCL-IPL)_OS   68.00  98.00  85.00  84.20  7.61 40
## II_INL_OS         31.00  51.00  40.50  41.05  4.49 40
## II_ORT_OS         94.00 135.00 113.50 113.95 10.11 40
## IO_TOT_OS        250.00 309.00 279.00 280.80 14.19 40
## IO_NFL_OS         29.00  63.00  38.00  38.27  6.64 40
## IO_(GCL-IPL)_OS   45.00  72.00  55.00  56.85  5.76 40
## IO_INL_OS         25.00  35.00  31.00  30.45  2.22 40
## IO_ORT_OS         74.00 203.00  91.00  94.17 19.63 40
## TI_TOT_OS        289.00 345.00 321.50 321.20 13.86 40
## TI_NFL_OS         15.00  27.00  17.00  17.82  2.06 40
## TI_(GCL-IPL)_OS   67.00  94.00  80.00  81.00  7.73 40
## TI_INL_OS         28.00  45.00  37.00  36.77  3.81 40
## TI_ORT_OS        101.00 150.00 118.00 118.67  9.03 40
## TO_TOT_OS        252.00 317.00 274.50 279.48 15.14 40
## TO_NFL_OS         17.00  29.00  20.00  20.08  2.07 40
## TO_(GCL-IPL)_OS   54.00  78.00  63.00  64.10  6.20 40
## TO_INL_OS         28.00  37.00  33.00  32.33  2.20 40
## TO_OR_OS          75.00 116.00  96.50  97.50  8.34 40
summary <- round(summary,2)
write.csv(summary, "summary_afterImp.csv", row.names = TRUE, col.names = TRUE)
## Warning in write.csv(summary, "summary_afterImp.csv", row.names = TRUE, :
## attempt to set 'col.names' ignored

summary by groups after imputation

cols_ind <- c(4:113)
summary_group <- df.imp[cols_ind] %>% 
  group_by(group) %>%
    summarize_all(list(median = ~ median(., na.rm = TRUE), 
                     mean = ~ mean(., na.rm = TRUE), 
                     sd = ~ sd(., na.rm = TRUE)))
as.data.frame(t(summary_group))
##                                 V1         V2          V3
## group                      Control         DM Prediabetes
## heart_rate_median             68.0       77.5        66.0
## MAP_median                    95.0       95.0        98.5
## SBP_median                     150        139         152
## BMI_median                   27.15      31.05       25.70
## HbA1c_median                  5.40       7.55        6.00
## BUN_median                    14.0       16.5        14.5
## Cr_median                     0.95       1.00        0.95
## BUN/Cr_median                 15.5       19.0        16.0
## HDL_median                    60.5       52.0        53.0
## LDL_median                    93.5       69.0        92.5
## Triglycerides_median      131.2660   137.9845    140.8270
## Cholesterol_median        224.2320   191.1265    208.8735
## NEFA_median                 0.9265     1.0000      0.9970
## Glucose_median             87.6825   108.1710     90.8535
## Ketone_median               0.1160     0.0945      0.0845
## Insulin_median             12.7180    14.0715      9.2450
## Adiponectin_median          7.9805     7.2545      9.0810
## Leptin_median              18.6295    24.7940     21.7360
## RAGE_median                11.0145    13.0220     11.2445
## CSF_TOT_OD_median            276.5      273.5       266.0
## CSF_NFL_OD_median             13.5       12.5        13.0
## CSF_(GCL-IPL)_OD_median       34.0       36.5        33.0
## CSF_INL_OD_median             21.0       24.5        18.5
## CSF_ORT_OD_median             67.5       75.5        67.5
## SI_TOT_OD_median             330.5      336.0       330.0
## SI_NFL_OD_median              23.5       23.5        22.5
## SI_(GCL-IPL)_OD_median        87.5       89.5        88.5
## SI_INL_OD_median              41.0       40.0        40.5
## SI_ORT_OD_median             117.0      116.0       114.5
## SO_TOT_OD_median             288.5      287.0       288.0
## SO_NFL_OD_median              37.5       36.0        36.5
## SO_(GCL-IPL)_OD_median        56.0       58.0        59.5
## SO_INL_OD_median              31.0       30.5        31.0
## SO_ORT_OD_median              98.5       98.5        96.5
## NI_TOT_OD_median               335        340         332
## NI_NFL_OD_median              20.5       20.0        20.5
## NI_(GCL-IPL)_OD_median        89.0       89.5        89.5
## NI_INL_OD_median              42.0       40.5        41.0
## NI_ORT_OD_median             123.5      122.5       119.5
## NO_TOT_OD_median               300        303         301
## NO_NFL_OD_median              48.0       46.5        45.0
## NO_(GCL-IPL)_OD_median        57.5       63.0        62.0
## NO_INL_OD_median              34.0       32.5        33.0
## NO_ORT_OD_median              99.0       97.5        98.0
## II_TOT_OD_median               330        333         327
## II_NFL_OD_median              23.0       23.5        23.0
## II_(GCL-IPL)_OD_median          85         87          86
## II_INL_OD_median              42.0       39.0        40.5
## II_ORT_OD_median               117        118         114
## IO_TOT_OD_median             275.5      281.0       281.0
## IO_NFL_OD_median              34.5       38.0        35.5
## IO_(GCL-IPL)_OD_median        55.0       58.5        56.0
## IO_INL_OD_median                32         30          31
## IO_ORT_OD_median              92.0       91.5        90.5
## TI_TOT_OD_median             321.0      324.5       317.5
## TI_NFL_OD_median                16         17          17
## TI_(GCL-IPL)_OD_median        85.0       84.5        80.5
## TI_INL_OD_median              38.5       38.0        37.5
## TI_ORT_OD_median             119.0      115.5       117.5
## TO_TOT_OD_median             272.5      275.0       271.0
## TO_NFL_OD_median                18         19          18
## TO_(GCL-IPL)_OD_median        62.5       65.0        62.5
## TO_INL_OD_median              32.0       32.5        32.0
## TO_ORT_OD_median              96.5       94.5        93.5
## CSF_TOT_OS_median            278.5      289.5       259.5
## CSF_NFL_OS_median             13.5       13.0        12.0
## CSF_(GCL-IPL)_OS_median       37.5       38.0        34.0
## CSF_INL_OS_median             22.0       25.5        21.0
## CSF_ORT_OS_median            138.5      133.5       131.0
## SI_TOT_OS_median             328.0      340.5       325.5
## SI_NFL_OS_median              24.0       22.5        23.0
## SI_(GCL-IPL)_OS_median          87         88          87
## SI_INL_OS_median              42.0       41.5        40.5
## SI_ORT_OS_median             117.0      117.5       113.0
## SO_TOT_OS_median             284.0      292.0       285.5
## SO_NFL_OS_median                35         36          37
## SO_(GCL-IPL)_OS_median        56.5       61.0        57.5
## SO_INL_OS_median                31         31          29
## SO_ORT_OS_median              97.5       99.0        96.5
## NI_TOT_OS_median             332.5      339.0       328.5
## NI_NFL_OS_median                20         20          19
## NI_(GCL-IPL)_OS_median        89.5       89.0        85.5
## NI_INL_OS_median                43         41          40
## NI_ORT_OS_median             124.0      118.5       114.5
## NO_TOS_OS_median             299.5      301.5       297.5
## NO_NFL_OS_median              51.0       52.0        46.5
## NO_GCL-IPL)_OS_median           59         60          60
## NO_INL_OS_median              33.5       33.0        32.5
## NO_ORT_OS_median              95.0       94.5        92.0
## II_TOT_OS_median             325.0      329.5       326.0
## II_NFL_OS_median              23.0       23.5        23.0
## II_(GCL-IPL)_OS_median        85.0       83.0        86.5
## II_INL_OS_median              41.0       40.5        40.0
## II_ORT_OS_median             118.0      114.5       110.0
## IO_TOT_OS_median               279        279         279
## IO_NFL_OS_median              39.0       37.5        37.5
## IO_(GCL-IPL)_OS_median        55.0       54.5        55.5
## IO_INL_OS_median              31.5       30.5        30.0
## IO_ORT_OS_median              91.0       89.5        90.5
## TI_TOT_OS_median             318.0      325.5       320.0
## TI_NFL_OS_median              17.0       17.5        17.0
## TI_(GCL-IPL)_OS_median        82.0       80.5        77.5
## TI_INL_OS_median                37         37          37
## TI_ORT_OS_median             118.5      120.5       114.5
## TO_TOT_OS_median             273.5      284.5       274.0
## TO_NFL_OS_median              20.0       20.0        19.5
## TO_(GCL-IPL)_OS_median        62.5       65.0        61.0
## TO_INL_OS_median              33.0       33.0        30.5
## TO_OR_OS_median               97.0      100.0        93.5
## heart_rate_mean           65.68750   78.50000    69.16667
## MAP_mean                  97.31250   91.20833    96.00000
## SBP_mean                  151.6250   137.3333    148.5000
## BMI_mean                  29.66250   31.68167    27.64167
## HbA1c_mean                5.306250   7.891667    5.991667
## BUN_mean                   15.3125    18.5000     17.0000
## Cr_mean                  0.9937500  0.9833333   1.0500000
## BUN/Cr_mean               15.81250   19.08333    16.66667
## HDL_mean                   66.0625    55.5000     54.5000
## LDL_mean                  99.37500   72.33333    92.25000
## Triglycerides_mean        142.2082   148.8373    148.0620
## Cholesterol_mean          225.1706   186.9147    204.3800
## NEFA_mean                0.9436875  1.0457500   0.9808333
## Glucose_mean              92.75919  117.94717    90.20325
## Ketone_mean             0.22331250 0.11316667  0.08341667
## Insulin_mean              12.93069   25.44358    18.19192
## Adiponectin_mean          11.45044   10.02042    12.01775
## Leptin_mean               27.60000   24.11900    23.88725
## RAGE_mean                 11.43444   15.73908    10.99292
## CSF_TOT_OD_mean           282.5000   273.8333    263.1667
## CSF_NFL_OD_mean           13.25000   11.83333    11.83333
## CSF_(GCL-IPL)_OD_mean     39.75000   35.25000    33.16667
## CSF_INL_OD_mean           22.37500   22.75000    19.91667
## CSF_ORT_OD_mean           75.31250   69.83333    65.58333
## SI_TOT_OD_mean            335.3125   334.0833    334.4167
## SI_NFL_OD_mean            24.12500   23.41667    22.75000
## SI_(GCL-IPL)_OD_mean      87.81250   89.50000    89.83333
## SI_INL_OD_mean            41.43750   41.41667    40.66667
## SI_ORT_OD_mean            115.3750   114.8333    114.5833
## SO_TOT_OD_mean            290.4375   289.7500    291.0000
## SO_NFL_OD_mean            38.68750   36.33333    36.66667
## SO_(GCL-IPL)_OD_mean      57.00000   59.41667    59.25000
## SO_INL_OD_mean            30.87500   30.50000    31.08333
## SO_ORT_OD_mean            97.56250   97.66667    98.83333
## NI_TOT_OD_mean            339.1875   337.4167    333.2500
## NI_NFL_OD_mean            21.68750   20.41667    19.91667
## NI_(GCL-IPL)_OD_mean       88.8125    88.2500     88.2500
## NI_INL_OD_mean            41.50000   41.58333    40.41667
## NI_ORT_OD_mean            121.3125   121.0000    119.1667
## NO_TOT_OD_mean            305.2500   305.0000    304.4167
## NO_NFL_OD_mean            48.87500   46.75000    46.33333
## NO_(GCL-IPL)_OD_mean      61.06250   62.58333    62.75000
## NO_INL_OD_mean            33.62500   32.66667    32.75000
## NO_ORT_OD_mean            97.50000   97.91667    97.58333
## II_TOT_OD_mean            334.1875   332.4167    328.3333
## II_NFL_OD_mean            24.18750   24.00000    22.66667
## II_(GCL-IPL)_OD_mean      87.87500   88.08333    87.41667
## II_INL_OD_mean            41.75000   39.91667    40.50000
## II_ORT_OD_mean            115.0000   115.5000    113.1667
## IO_TOT_OD_mean            282.0625   282.0833    278.3333
## IO_NFL_OD_mean            37.50000   38.08333    36.41667
## IO_(GCL-IPL)_OD_mean      58.37500   58.41667    56.75000
## IO_INL_OD_mean            31.31250   30.41667    30.75000
## IO_ORT_OD_mean            92.56250   91.25000    91.16667
## TI_TOT_OD_mean            326.1250   323.8333    317.2500
## TI_NFL_OD_mean            16.81250   17.25000    16.91667
## TI_(GCL-IPL)_OD_mean      85.81250   84.66667    81.25000
## TI_INL_OD_mean            38.68750   39.08333    37.58333
## TI_ORT_OD_mean            118.6875   117.0833    116.5000
## TO_TOT_OD_mean            275.1250   276.2500    273.4167
## TO_NFL_OD_mean            18.75000   18.91667    18.25000
## TO_(GCL-IPL)_OD_mean      62.93750   64.58333    63.41667
## TO_INL_OD_mean            32.62500   32.25000    32.33333
## TO_ORT_OD_mean            96.25000   95.33333    95.08333
## CSF_TOT_OS_mean           279.6250   286.0000    264.8333
## CSF_NFL_OS_mean           13.56250   14.50000    12.41667
## CSF_(GCL-IPL)_OS_mean     38.12500   40.66667    33.50000
## CSF_INL_OS_mean           22.50000   25.25000    19.91667
## CSF_ORT_OS_mean            136.125    136.000     132.000
## SI_TOT_OS_mean              332.25     336.75      326.50
## SI_NFL_OS_mean            23.87500   23.58333    22.91667
## SI_(GCL-IPL)_OS_mean      86.31250   86.91667    86.25000
## SI_INL_OS_mean             41.6875    42.0000     40.0000
## SI_ORT_OS_mean            114.6875   117.5833    112.7500
## SO_TOT_OS_mean            288.7500   296.4167    286.0833
## SO_NFL_OS_mean            37.56250   37.91667    37.25000
## SO_(GCL-IPL)_OS_mean       56.8125    60.7500     58.0000
## SO_INL_OS_mean            31.12500   31.41667    30.00000
## SO_ORT_OS_mean            98.06250  100.50000    96.41667
## NI_TOT_OS_mean            336.6250   337.9167    328.5833
## NI_NFL_OS_mean            20.68750   23.16667    19.41667
## NI_(GCL-IPL)_OS_mean      87.93750   86.33333    87.50000
## NI_INL_OS_mean              42.375     42.000      39.250
## NI_ORT_OS_mean            119.6875   119.9167    117.5833
## NO_TOS_OS_mean            301.3750   305.4167    296.8333
## NO_NFL_OS_mean            48.93750   50.83333    48.25000
## NO_GCL-IPL)_OS_mean       58.81250   59.41667    59.58333
## NO_INL_OS_mean            33.43750   33.08333    32.00000
## NO_ORT_OS_mean            89.12500   96.66667    93.00000
## II_TOT_OS_mean            329.7500   329.9167    324.4167
## II_NFL_OS_mean            23.75000   25.16667    23.50000
## II_(GCL-IPL)_OS_mean      84.56250   82.08333    85.83333
## II_INL_OS_mean             42.0625    41.5000     39.2500
## II_ORT_OS_mean            113.6875   115.7500    112.5000
## IO_TOT_OS_mean            282.3125   282.5000    277.0833
## IO_NFL_OS_mean            37.87500   39.08333    38.00000
## IO_(GCL-IPL)_OS_mean        57.375     56.500      56.500
## IO_INL_OS_mean            31.25000   30.00000    29.83333
## IO_ORT_OS_mean            91.56250   92.16667    99.66667
## TI_TOT_OS_mean            321.8125   324.1667    317.4167
## TI_NFL_OS_mean            17.68750   18.41667    17.41667
## TI_(GCL-IPL)_OS_mean      81.75000   80.33333    80.66667
## TI_INL_OS_mean            37.12500   37.83333    35.25000
## TI_ORT_OS_mean            118.1875   120.3333    117.6667
## TO_TOT_OS_mean            277.8750   284.5833    276.5000
## TO_NFL_OS_mean            19.75000   20.75000    19.83333
## TO_(GCL-IPL)_OS_mean      63.18750   66.25000    63.16667
## TO_INL_OS_mean             32.8125    32.7500     31.2500
## TO_OR_OS_mean             97.31250   99.41667    95.83333
## heart_rate_sd             7.905431  12.551711    7.848953
## MAP_sd                   11.694550  15.942308    8.686458
## SBP_sd                    25.42669   18.99442    20.37155
## BMI_sd                    7.602182   5.882396    3.815389
## HbA1c_sd                 0.2594064  1.1277156   0.2234373
## BUN_sd                    4.045059   5.213619    6.105139
## Cr_sd                    0.2264766  0.2480225   0.3450955
## BUN/Cr_sd                 3.816084   2.998737    5.033223
## HDL_sd                    22.35910   15.44197    16.86039
## LDL_sd                    29.01235   23.65792    26.61894
## Triglycerides_sd          44.13969   43.13420    39.51485
## Cholesterol_sd            40.33197   23.37620    27.78883
## NEFA_sd                  0.2211300  0.3132745   0.2202968
## Glucose_sd                24.62831   28.32414    10.32736
## Ketone_sd               0.35162911 0.06555474  0.04030894
## Insulin_sd                8.524563  25.623065   34.903184
## Adiponectin_sd            8.687511   9.339039    9.280763
## Leptin_sd                 21.90883   12.33036    10.42255
## RAGE_sd                   3.047933   8.984779    3.663867
## CSF_TOT_OD_sd             34.22670   20.82757    10.53853
## CSF_NFL_OD_sd             2.408319   2.037527    2.329000
## CSF_(GCL-IPL)_OD_sd      10.981803   7.072675    4.569331
## CSF_INL_OD_sd             6.800735   5.545268    6.141636
## CSF_ORT_OD_sd             19.34845   13.62373    10.68098
## SI_TOT_OD_sd              16.26743   16.77367    17.22291
## SI_NFL_OD_sd              3.997916   3.028901    1.602555
## SI_(GCL-IPL)_OD_sd        9.130307   9.298094    7.456947
## SI_INL_OD_sd              4.114507   4.679905    4.097301
## SI_ORT_OD_sd              9.408330   7.234178    6.841828
## SO_TOT_OD_sd              12.90978   14.52975    16.01704
## SO_NFL_OD_sd              6.498397   3.725425    2.806918
## SO_(GCL-IPL)_OD_sd        5.761944   5.664215    5.276449
## SO_INL_OD_sd              1.962142   2.022600    2.678478
## SO_ORT_OD_sd              7.311806   7.749878    9.466048
## NI_TOT_OD_sd              19.34673   15.28789    17.23698
## NI_NFL_OD_sd              4.331570   1.928652    1.928652
## NI_(GCL-IPL)_OD_sd       10.258127   8.400487    7.312816
## NI_INL_OD_sd              4.147288   4.944388    5.142662
## NI_ORT_OD_sd              9.843568   8.168676    7.649520
## NO_TOT_OD_sd              17.41455   15.36229    15.78525
## NO_NFL_OD_sd              7.209947   5.940998    4.185111
## NO_(GCL-IPL)_OD_sd        8.053726   6.501165    4.575130
## NO_INL_OD_sd              2.500000   2.015095    2.179449
## NO_ORT_OD_sd              8.262364   9.238834    9.922045
## II_TOT_OD_sd              18.95334   17.46403    15.14376
## II_NFL_OD_sd              3.936475   3.190896    2.015095
## II_(GCL-IPL)_OD_sd       11.074746   8.596599    7.704288
## II_INL_OD_sd              3.872983   4.907477    3.503245
## II_ORT_OD_sd              9.136009   7.716570    8.881373
## IO_TOT_OD_sd              14.38272   15.18647    16.14893
## IO_NFL_OD_sd              7.099296   5.264950    7.751344
## IO_(GCL-IPL)_OD_sd        6.652067   6.359793    5.545268
## IO_INL_OD_sd              1.990603   2.274696    2.958040
## IO_ORT_OD_sd              7.247701   8.225515    8.684713
## TI_TOT_OD_sd              20.64582   16.92139    15.48093
## TI_NFL_OD_sd              2.400521   1.912875    1.083625
## TI_(GCL-IPL)_OD_sd       11.674581   9.354953    9.126634
## TI_INL_OD_sd              3.842200   5.053502    3.553701
## TI_ORT_OD_sd              9.075379   5.915439    7.280110
## TO_TOT_OD_sd              11.99931   14.14294    16.88172
## TO_NFL_OD_sd              2.265686   1.831955    1.544786
## TO_(GCL-IPL)_OD_sd        5.259515   6.200562    6.515134
## TO_INL_OD_sd              2.446085   2.301185    2.839121
## TO_ORT_OD_sd              7.886698   7.075352    8.349832
## CSF_TOT_OS_sd             20.28094   30.51378    20.68303
## CSF_NFL_OS_sd             2.159282   6.612660    1.975225
## CSF_(GCL-IPL)_OS_sd       7.338256  17.849540    7.403930
## CSF_INL_OS_sd             5.019960   7.059809    5.775471
## CSF_ORT_OS_sd             9.871677  11.393778   13.402849
## SI_TOT_OS_sd              12.69383   14.00730    10.16679
## SI_NFL_OS_sd              2.895399   3.369875    2.678478
## SI_(GCL-IPL)_OS_sd        6.886884   7.833011    6.552238
## SI_INL_OS_sd              3.978589   5.477226    3.104249
## SI_ORT_OS_sd              9.589708   9.394954    8.080560
## SO_TOT_OS_sd             11.795479  19.974795    9.802211
## SO_NFL_OS_sd              6.975851   5.264950    3.768892
## SO_(GCL-IPL)_OS_sd        5.218157   6.956031    4.690416
## SO_INL_OS_sd              2.848976   2.810963    2.044949
## SO_ORT_OS_sd              8.119678   9.765431    6.402533
## NI_TOT_OS_sd              14.44472   13.02765    11.25295
## NI_NFL_OS_sd              1.887459   8.099757    2.609714
## NI_(GCL-IPL)_OS_sd        7.379871   9.920899    7.669301
## NI_INL_OS_sd              4.897278   5.783990    2.598076
## NI_ORT_OS_sd              8.715647   9.709024    9.500797
## NO_TOS_OS_sd              14.41238   17.70187    10.28532
## NO_NFL_OS_sd              6.668021  12.932224    5.894913
## NO_GCL-IPL)_OS_sd         4.982887   6.598324    4.399552
## NO_INL_OS_sd              2.657536   4.481443    2.256304
## NO_ORT_OS_sd              25.16843   13.04770     7.00649
## II_TOT_OS_sd              15.39480   14.93902    11.09839
## II_NFL_OS_sd              3.511885   7.673251    2.067058
## II_(GCL-IPL)_OS_sd        7.051891   9.307459    6.562058
## II_INL_OS_sd              4.281258   5.728716    2.895922
## II_ORT_OS_sd             10.467211   9.696532   10.638694
## IO_TOT_OS_sd              14.07939   16.54471    12.19880
## IO_NFL_OS_sd              6.280923   9.159777    4.177864
## IO_(GCL-IPL)_OS_sd        5.402160   7.452882    4.641708
## IO_INL_OS_sd              1.483240   2.796101    2.249579
## IO_ORT_OS_sd              7.899103  10.861386   33.399329
## TI_TOT_OS_sd              13.82374   14.52793    13.54762
## TI_NFL_OS_sd             1.5370426  3.2039275   0.9962049
## TI_(GCL-IPL)_OS_sd        7.576279   8.584694    7.655460
## TI_INL_OS_sd              3.630886   3.904155    3.792936
## TI_ORT_OS_sd              8.215585   6.665151   12.160542
## TO_TOT_OS_sd              13.30100   17.18593    15.30597
## TO_NFL_OS_sd              1.483240   3.107908    1.337116
## TO_(GCL-IPL)_OS_sd        5.588306   7.325237    5.718126
## TO_INL_OS_sd              2.315707   2.005674    2.005674
## TO_OR_OS_sd               8.211526   8.511579    8.674239
write.csv(t(summary_group), "summary_group_afterImp.csv", row.names = TRUE, col.names = TRUE)
## Warning in write.csv(t(summary_group), "summary_group_afterImp.csv", row.names =
## TRUE, : attempt to set 'col.names' ignored

histograms of independent variables (age + metabolic measures)

colnames(df.imp)
##   [1] "IRB"              "age"              "gender"          
##   [4] "heart_rate"       "MAP"              "SBP"             
##   [7] "BMI"              "HbA1c"            "BUN"             
##  [10] "Cr"               "BUN/Cr"           "HDL"             
##  [13] "LDL"              "Triglycerides"    "Cholesterol"     
##  [16] "NEFA"             "Glucose"          "Ketone"          
##  [19] "Insulin"          "Adiponectin"      "Leptin"          
##  [22] "RAGE"             "CSF_TOT_OD"       "CSF_NFL_OD"      
##  [25] "CSF_(GCL-IPL)_OD" "CSF_INL_OD"       "CSF_ORT_OD"      
##  [28] "SI_TOT_OD"        "SI_NFL_OD"        "SI_(GCL-IPL)_OD" 
##  [31] "SI_INL_OD"        "SI_ORT_OD"        "SO_TOT_OD"       
##  [34] "SO_NFL_OD"        "SO_(GCL-IPL)_OD"  "SO_INL_OD"       
##  [37] "SO_ORT_OD"        "NI_TOT_OD"        "NI_NFL_OD"       
##  [40] "NI_(GCL-IPL)_OD"  "NI_INL_OD"        "NI_ORT_OD"       
##  [43] "NO_TOT_OD"        "NO_NFL_OD"        "NO_(GCL-IPL)_OD" 
##  [46] "NO_INL_OD"        "NO_ORT_OD"        "II_TOT_OD"       
##  [49] "II_NFL_OD"        "II_(GCL-IPL)_OD"  "II_INL_OD"       
##  [52] "II_ORT_OD"        "IO_TOT_OD"        "IO_NFL_OD"       
##  [55] "IO_(GCL-IPL)_OD"  "IO_INL_OD"        "IO_ORT_OD"       
##  [58] "TI_TOT_OD"        "TI_NFL_OD"        "TI_(GCL-IPL)_OD" 
##  [61] "TI_INL_OD"        "TI_ORT_OD"        "TO_TOT_OD"       
##  [64] "TO_NFL_OD"        "TO_(GCL-IPL)_OD"  "TO_INL_OD"       
##  [67] "TO_ORT_OD"        "CSF_TOT_OS"       "CSF_NFL_OS"      
##  [70] "CSF_(GCL-IPL)_OS" "CSF_INL_OS"       "CSF_ORT_OS"      
##  [73] "SI_TOT_OS"        "SI_NFL_OS"        "SI_(GCL-IPL)_OS" 
##  [76] "SI_INL_OS"        "SI_ORT_OS"        "SO_TOT_OS"       
##  [79] "SO_NFL_OS"        "SO_(GCL-IPL)_OS"  "SO_INL_OS"       
##  [82] "SO_ORT_OS"        "NI_TOT_OS"        "NI_NFL_OS"       
##  [85] "NI_(GCL-IPL)_OS"  "NI_INL_OS"        "NI_ORT_OS"       
##  [88] "NO_TOS_OS"        "NO_NFL_OS"        "NO_GCL-IPL)_OS"  
##  [91] "NO_INL_OS"        "NO_ORT_OS"        "II_TOT_OS"       
##  [94] "II_NFL_OS"        "II_(GCL-IPL)_OS"  "II_INL_OS"       
##  [97] "II_ORT_OS"        "IO_TOT_OS"        "IO_NFL_OS"       
## [100] "IO_(GCL-IPL)_OS"  "IO_INL_OS"        "IO_ORT_OS"       
## [103] "TI_TOT_OS"        "TI_NFL_OS"        "TI_(GCL-IPL)_OS" 
## [106] "TI_INL_OS"        "TI_ORT_OS"        "TO_TOT_OS"       
## [109] "TO_NFL_OS"        "TO_(GCL-IPL)_OS"  "TO_INL_OS"       
## [112] "TO_OR_OS"         "group"
indep_list <- c("age", "heart_rate","MAP","SBP","BMI","HbA1c","BUN","Cr","BUN/Cr","HDL","LDL","Triglycerides","Cholesterol","NEFA","Glucose","Ketone","Insulin","Adiponectin","Leptin","RAGE")
for (col in indep_list) {
  hist(df.imp[[col]], xlab = paste(col), main = paste("Histogram of", col))
}

ANOVA tests on metabolic measures

# Create an empty list to store the ANOVA test results
anova_results <- list()
p_values <- as.data.frame(cbind(indep_list, rep(NA, length(indep_list))))
colnames(p_values) <- c("Met", "p-value")
# Loop through each column in the vector and perform the ANOVA test
for (col in indep_list) {
  my_formula <- formula(paste(col, " ~ group"))
  anova_results[[col]] <- aov(my_formula, data = df.imp)
}

# Extract the relevant information from the ANOVA test results
for (col in indep_list) {
  anova_result <- anova_results[[col]]
  print(paste("Column:", col))
  print(summary(anova_result))
  p_values[p_values$Met==col, "p-value"] <- summary(anova_result)[[1]][["Pr(>F)"]][[1]]
}
## [1] "Column: age"
##             Df Sum Sq Mean Sq F value Pr(>F)
## group        2   35.6   17.79   0.453  0.639
## Residuals   37 1452.0   39.24               
## [1] "Column: heart_rate"
##             Df Sum Sq Mean Sq F value  Pr(>F)   
## group        2   1160   579.8   6.408 0.00408 **
## Residuals   37   3348    90.5                   
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## [1] "Column: MAP"
##             Df Sum Sq Mean Sq F value Pr(>F)
## group        2    270   134.9   0.879  0.424
## Residuals   37   5677   153.4               
## [1] "Column: SBP"
##             Df Sum Sq Mean Sq F value Pr(>F)
## group        2   1476   738.1   1.498  0.237
## Residuals   37  18231   492.7               
## [1] "Column: BMI"
##             Df Sum Sq Mean Sq F value Pr(>F)
## group        2   97.9   48.96   1.287  0.288
## Residuals   37 1407.7   38.04               
## [1] "Column: HbA1c"
##             Df Sum Sq Mean Sq F value   Pr(>F)    
## group        2  47.34   23.67   56.32 5.93e-12 ***
## Residuals   37  15.55    0.42                     
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## [1] "Column: BUN"
##             Df Sum Sq Mean Sq F value Pr(>F)
## group        2   70.5   35.27   1.367  0.267
## Residuals   37  954.4   25.80               
## [1] "Column: Cr"
##             Df Sum Sq Mean Sq F value Pr(>F)
## group        2 0.0317 0.01585   0.213  0.809
## Residuals   37 2.7560 0.07449               
## [1] "Column: BUN/Cr"
##             Df Sum Sq Mean Sq F value Pr(>F)
## group        2   77.2   38.61    2.38  0.107
## Residuals   37  600.2   16.22               
## [1] "Column: HDL"
##             Df Sum Sq Mean Sq F value Pr(>F)
## group        2   1181   590.4   1.649  0.206
## Residuals   37  13249   358.1               
## [1] "Column: LDL"
##             Df Sum Sq Mean Sq F value Pr(>F)  
## group        2   5182  2590.9   3.607 0.0371 *
## Residuals   37  26577   718.3                 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## [1] "Column: Triglycerides"
##             Df Sum Sq Mean Sq F value Pr(>F)
## group        2    378   188.8   0.104  0.901
## Residuals   37  66866  1807.2               
## [1] "Column: Cholesterol"
##             Df Sum Sq Mean Sq F value Pr(>F)  
## group        2  10198    5099   4.849 0.0135 *
## Residuals   37  38905    1051                 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## [1] "Column: NEFA"
##             Df Sum Sq Mean Sq F value Pr(>F)
## group        2 0.0718 0.03590   0.566  0.573
## Residuals   37 2.3469 0.06343               
## [1] "Column: Glucose"
##             Df Sum Sq Mean Sq F value  Pr(>F)   
## group        2   5848  2923.8   5.665 0.00714 **
## Residuals   37  19096   516.1                   
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## [1] "Column: Ketone"
##             Df Sum Sq Mean Sq F value Pr(>F)
## group        2 0.1554 0.07768   1.497  0.237
## Residuals   37 1.9198 0.05189               
## [1] "Column: Insulin"
##             Df Sum Sq Mean Sq F value Pr(>F)
## group        2   1074   536.9   0.915  0.409
## Residuals   37  21713   586.8               
## [1] "Column: Adiponectin"
##             Df Sum Sq Mean Sq F value Pr(>F)
## group        2   25.7   12.86   0.157  0.856
## Residuals   37 3038.9   82.13               
## [1] "Column: Leptin"
##             Df Sum Sq Mean Sq F value Pr(>F)
## group        2    125   62.26   0.229  0.797
## Residuals   37  10067  272.09               
## [1] "Column: RAGE"
##             Df Sum Sq Mean Sq F value Pr(>F)  
## group        2    171   85.49   2.692  0.081 .
## Residuals   37   1175   31.76                 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
print(p_values)
##              Met              p-value
## 1            age    0.639003947659504
## 2     heart_rate  0.00407830327625814
## 3            MAP    0.423642526330267
## 4            SBP    0.236839174386152
## 5            BMI    0.288160633051946
## 6          HbA1c 5.92743936875186e-12
## 7            BUN    0.267382575964328
## 8             Cr    0.809265749115154
## 9         BUN/Cr    0.106536202914618
## 10           HDL    0.206085579333795
## 11           LDL   0.0370579492213495
## 12 Triglycerides    0.901070924578674
## 13   Cholesterol   0.0134788118727171
## 14          NEFA    0.572660639133777
## 15       Glucose  0.00714012702844985
## 16        Ketone    0.237015529217559
## 17       Insulin     0.40944234717612
## 18   Adiponectin    0.855619965380107
## 19        Leptin    0.796583826653914
## 20          RAGE   0.0810074664704791
write.csv(p_values, "ANOVA_met_pValues.csv", row.names = TRUE, col.names = TRUE)
## Warning in write.csv(p_values, "ANOVA_met_pValues.csv", row.names = TRUE, :
## attempt to set 'col.names' ignored

Important predictors: Adiponectin, Leptin, Cholesterol, HbA1c, gender, age

Pairs plot, correlations, heatmap of metabolic measures

pairs(df.imp[met_list])

met_cor <- cor(df.imp[met_list])
corrplot(met_cor, type = "upper", method = "circle")

Selected predictors heatmap

predictors <- c("age","SBP","HbA1c","BUN/Cr","Cholesterol","Ketone","Adiponectin","Leptin","RAGE", "NEFA")
met_cor <- cor(df.imp[predictors])
corrplot(met_cor, type = "upper", method = "circle")

Correlation heatmaps for retinal measures by eye

# right eye
OD_list <- c(23:67)
OD_cor <- cor(df.imp[OD_list])
corrplot(OD_cor, type = "upper", method = "circle", tl.cex = 0.5)

# left eye
OS_list <- c(68:112)
OS_cor <- cor(df.imp[OS_list])
corrplot(OS_cor, type = "upper", method = "circle", tl.cex = 0.5)

# save cleaned dataset
write.table(df.imp, "data_cleaned.txt", sep = "\t", row.names = FALSE, col.names = TRUE)

make a long table from a wide one

right_eye_df <- df.imp[,!grepl("_OS",colnames(df.imp),ignore.case = FALSE)]
  
left_eye_df <-  df.imp[,!grepl("_OD",colnames(df.imp),ignore.case = FALSE)]

names(right_eye_df) = gsub(pattern = "_OD",
                           replacement = "",
                           x = names(right_eye_df))

names(left_eye_df) = gsub(pattern = "_OS",
                          replacement = "",
                          x = names(left_eye_df))

right_eye_df$eye <- "right"
left_eye_df$eye <- "left"

# Fix naming inconsistencies
names(left_eye_df)[names(left_eye_df) == 'TO_OR'] <- 'TO_ORT'
names(left_eye_df)[names(left_eye_df) == 'NO_TOS'] <- 'NO_TOT'
names(left_eye_df)[names(left_eye_df) == 'NO_GCL-IPL)'] <- 'NO_(GCL-IPL)'

df.imp.long <- rbind(right_eye_df,left_eye_df)
# save long file
write.table(df.imp.long, "data_cleaned_long.txt", sep = "\t", row.names = FALSE, col.names = TRUE)

histograms and descriptive analysis for total retinal thickness in 9 regions (for both eyes)

ret_list <- seq(23, length = 9, by = 5)
for (col in colnames(df.imp.long[ret_list])) {
  hist(df.imp.long[[col]], xlab = paste(col), main = paste("Histogram of", col))
}

cols_ind <- c(23:67)
min_data <- apply(df.imp.long[, cols_ind], 2, function(x) min(x, na.rm = TRUE))
max_data <- apply(df.imp.long[, cols_ind], 2, function(x) max(x, na.rm = TRUE))
median_data <- apply(df.imp.long[, cols_ind], 2, function(x) median(x, na.rm = TRUE))
mean_data <- apply(df.imp.long[, cols_ind], 2, function(x) mean(x, na.rm = TRUE))
sd_data <- apply(df.imp.long[, cols_ind], 2, function(x) sd(x, na.rm = TRUE))
n_data <- apply(df.imp.long[, cols_ind], 2, function(x) sum(!is.na(x)))
summary_long <- cbind(min_data, max_data, median_data, mean_data, sd_data, n_data)
colnames(summary_long) <- c("Min", "Max", "Median", "Mean", "SD", "N")
round(summary_long,2)
##               Min Max Median   Mean    SD  N
## CSF_TOT       231 382  272.5 275.60 25.23 80
## CSF_NFL         8  35   13.0  12.95  3.29 80
## CSF_(GCL-IPL)  23  91   35.0  36.96 10.17 80
## CSF_INL        10  41   22.0  22.15  6.14 80
## CSF_ORT        46 166  115.5 102.80 35.00 80
## SI_TOT        296 370  331.5 333.28 14.60 80
## SI_NFL         18  37   23.0  23.50  3.01 80
## SI_(GCL-IPL)   72 113   88.0  87.70  7.82 80
## SI_INL         33  55   41.0  41.24  4.19 80
## SI_ORT         92 136  116.0 114.97  8.44 80
## SO_TOT        266 340  286.5 290.32 14.18 80
## SO_NFL         29  54   37.0  37.48  5.17 80
## SO_(GCL-IPL)   48  76   57.5  58.38  5.63 80
## SO_INL         25  37   31.0  30.85  2.39 80
## SO_ORT         77 120   98.0  98.14  8.00 80
## NI_TOT        298 380  335.0 335.74 15.44 80
## NI_NFL         16  48   20.0  20.91  4.10 80
## NI_(GCL-IPL)   71 117   89.0  87.90  8.37 80
## NI_INL         33  55   41.0  41.26  4.65 80
## NI_ORT        102 140  122.0 119.85  8.80 80
## NO_TOT        267 345  301.0 303.08 15.23 80
## NO_NFL         35  84   47.0  48.39  7.47 80
## NO_(GCL-IPL)   49  79   60.0  60.62  6.08 80
## NO_INL         27  45   33.0  32.99  2.75 80
## NO_ORT          0 128   96.0  95.10 14.18 80
## II_TOT        291 379  329.5 330.05 15.67 80
## II_NFL         18  48   23.0  23.89  4.07 80
## II_(GCL-IPL)   68 111   85.0  86.00  8.59 80
## II_INL         31  51   41.0  40.94  4.26 80
## II_ORT         94 135  114.5 114.28  9.28 80
## IO_TOT        250 309  279.0 280.88 14.45 80
## IO_NFL         18  63   37.0  37.81  6.63 80
## IO_(GCL-IPL)   45  72   55.5  57.38  5.94 80
## IO_INL         25  37   31.0  30.66  2.29 80
## IO_ORT         74 203   91.0  92.96 14.89 80
## TI_TOT        284 380  321.0 321.99 16.02 80
## TI_NFL         11  27   17.0  17.40  2.02 80
## TI_(GCL-IPL)   66 110   81.5  82.55  9.14 80
## TI_INL         28  49   37.0  37.62  4.03 80
## TI_ORT         97 150  118.5 118.11  8.30 80
## TO_TOT        252 317  274.0 277.21 14.62 80
## TO_NFL         15  29   19.0  19.36  2.11 80
## TO_(GCL-IPL)   51  78   63.0  63.84  5.98 80
## TO_INL         28  38   32.0  32.38  2.32 80
## TO_ORT         75 116   96.0  96.56  7.99 80
write.csv(round(summary_long,2), "summary_long.csv", row.names = TRUE, col.names = TRUE)
## Warning in write.csv(round(summary_long, 2), "summary_long.csv", row.names =
## TRUE, : attempt to set 'col.names' ignored
cols_ind <- c(23:68)
summary_long_group <- df.imp.long[cols_ind] %>% 
  group_by(group) %>%
    summarize_all(list(median = ~ median(., na.rm = TRUE), 
                     mean = ~ mean(., na.rm = TRUE), 
                     sd = ~ sd(., na.rm = TRUE)))
summary_long_group
## # A tibble: 3 × 136
##   group  CSF_T…¹ CSF_N…² CSF_(…³ CSF_I…⁴ CSF_O…⁵ SI_TO…⁶ SI_NF…⁷ SI_(G…⁸ SI_IN…⁹
##   <fct>    <dbl>   <dbl>   <dbl>   <dbl>   <dbl>   <dbl>   <dbl>   <dbl>   <dbl>
## 1 Contr…    278     13.5      37    21.5   120.     330     24      87      41  
## 2 DM        278.    13        38    24.5   102.     340.    23      89.5    41  
## 3 Predi…    264.    12        33    20      98.5    327     22.5    88      40.5
## # … with 126 more variables: SI_ORT_median <dbl>, SO_TOT_median <dbl>,
## #   SO_NFL_median <dbl>, `SO_(GCL-IPL)_median` <dbl>, SO_INL_median <dbl>,
## #   SO_ORT_median <dbl>, NI_TOT_median <dbl>, NI_NFL_median <dbl>,
## #   `NI_(GCL-IPL)_median` <dbl>, NI_INL_median <dbl>, NI_ORT_median <dbl>,
## #   NO_TOT_median <dbl>, NO_NFL_median <dbl>, `NO_(GCL-IPL)_median` <dbl>,
## #   NO_INL_median <dbl>, NO_ORT_median <dbl>, II_TOT_median <dbl>,
## #   II_NFL_median <dbl>, `II_(GCL-IPL)_median` <dbl>, II_INL_median <dbl>, …
write.csv(as.data.frame(t(summary_long_group)), "summary_long_group.csv", row.names = TRUE, col.names = TRUE)
## Warning in write.csv(as.data.frame(t(summary_long_group)),
## "summary_long_group.csv", : attempt to set 'col.names' ignored
cols_ind <- seq(23, length = 9, by = 5)
min_data <- apply(df.imp.long[, cols_ind], 2, function(x) min(x, na.rm = TRUE))
max_data <- apply(df.imp.long[, cols_ind], 2, function(x) max(x, na.rm = TRUE))
median_data <- apply(df.imp.long[, cols_ind], 2, function(x) median(x, na.rm = TRUE))
mean_data <- apply(df.imp.long[, cols_ind], 2, function(x) mean(x, na.rm = TRUE))
sd_data <- apply(df.imp.long[, cols_ind], 2, function(x) sd(x, na.rm = TRUE))
n_data <- apply(df.imp.long[, cols_ind], 2, function(x) sum(!is.na(x)))
summary_tot <- cbind(min_data, max_data, median_data, mean_data, sd_data, n_data)
colnames(summary_tot) <- c("Min", "Max", "Median", "Mean", "SD", "N")
round(summary_tot,2)
##         Min Max Median   Mean    SD  N
## CSF_TOT 231 382  272.5 275.60 25.23 80
## SI_TOT  296 370  331.5 333.28 14.60 80
## SO_TOT  266 340  286.5 290.32 14.18 80
## NI_TOT  298 380  335.0 335.74 15.44 80
## NO_TOT  267 345  301.0 303.08 15.23 80
## II_TOT  291 379  329.5 330.05 15.67 80
## IO_TOT  250 309  279.0 280.88 14.45 80
## TI_TOT  284 380  321.0 321.99 16.02 80
## TO_TOT  252 317  274.0 277.21 14.62 80
write.csv(round(summary_tot,2), "summary_tot.csv", row.names = TRUE, col.names = TRUE)
## Warning in write.csv(round(summary_tot, 2), "summary_tot.csv", row.names =
## TRUE, : attempt to set 'col.names' ignored

ANOVA test for retinal measures

# Create an empty list to store the ANOVA test results
anova_results <- list()
cols_ind <- c(23:67)
ret_list <- colnames(df.imp.long)[cols_ind]
p_values <- as.data.frame(cbind(ret_list, rep(NA, length(ret_list))))
colnames(p_values) <- c("Met", "p-value")
# Loop through each column in the vector and perform the ANOVA test
for (col in ret_list) {
  my_formula <- formula(paste("`", col, "`", " ~ group", sep = ""))
  anova_results[[col]] <- aov(my_formula, data = df.imp.long)
}

# Extract the relevant information from the ANOVA test results
for (col in ret_list) {
  anova_result <- anova_results[[col]]
  print(paste("Column:", col))
  print(summary(anova_result))
  p_values[p_values$Met==col, "p-value"] <- summary(anova_result)[[1]][["Pr(>F)"]][[1]]
}
## [1] "Column: CSF_TOT"
##             Df Sum Sq Mean Sq F value Pr(>F)  
## group        2   4631  2315.7   3.906 0.0242 *
## Residuals   77  45654   592.9                 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## [1] "Column: CSF_NFL"
##             Df Sum Sq Mean Sq F value Pr(>F)
## group        2   24.1   12.06   1.117  0.333
## Residuals   77  831.7   10.80               
## [1] "Column: CSF_(GCL-IPL)"
##             Df Sum Sq Mean Sq F value Pr(>F)
## group        2    465   232.4   2.323  0.105
## Residuals   77   7702   100.0               
## [1] "Column: CSF_INL"
##             Df Sum Sq Mean Sq F value Pr(>F)  
## group        2  204.5  102.25   2.834 0.0649 .
## Residuals   77 2777.7   36.07                 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## [1] "Column: CSF_ORT"
##             Df Sum Sq Mean Sq F value Pr(>F)
## group        2    659   329.3   0.264  0.769
## Residuals   77  96098  1248.0               
## [1] "Column: SI_TOT"
##             Df Sum Sq Mean Sq F value Pr(>F)
## group        2    309   154.3   0.719  0.491
## Residuals   77  16533   214.7               
## [1] "Column: SI_NFL"
##             Df Sum Sq Mean Sq F value Pr(>F)
## group        2   18.7   9.333   1.028  0.363
## Residuals   77  699.3   9.082               
## [1] "Column: SI_(GCL-IPL)"
##             Df Sum Sq Mean Sq F value Pr(>F)
## group        2     22   11.00   0.176  0.839
## Residuals   77   4807   62.43               
## [1] "Column: SI_INL"
##             Df Sum Sq Mean Sq F value Pr(>F)
## group        2   28.3   14.16   0.803  0.452
## Residuals   77 1358.2   17.64               
## [1] "Column: SI_ORT"
##             Df Sum Sq Mean Sq F value Pr(>F)
## group        2     78   38.84   0.538  0.586
## Residuals   77   5556   72.16               
## [1] "Column: SO_TOT"
##             Df Sum Sq Mean Sq F value Pr(>F)
## group        2    276   138.0   0.681  0.509
## Residuals   77  15612   202.8               
## [1] "Column: SO_NFL"
##             Df Sum Sq Mean Sq F value Pr(>F)
## group        2   22.9   11.43   0.421  0.658
## Residuals   77 2091.1   27.16               
## [1] "Column: SO_(GCL-IPL)"
##             Df Sum Sq Mean Sq F value Pr(>F)
## group        2  140.6   70.29   2.293  0.108
## Residuals   77 2360.2   30.65               
## [1] "Column: SO_INL"
##             Df Sum Sq Mean Sq F value Pr(>F)
## group        2    3.3   1.642   0.282  0.755
## Residuals   77  448.9   5.830               
## [1] "Column: SO_ORT"
##             Df Sum Sq Mean Sq F value Pr(>F)
## group        2     31   15.58   0.239  0.788
## Residuals   77   5022   65.23               
## [1] "Column: NI_TOT"
##             Df Sum Sq Mean Sq F value Pr(>F)
## group        2    798   398.8   1.703  0.189
## Residuals   77  18028   234.1               
## [1] "Column: NI_NFL"
##             Df Sum Sq Mean Sq F value Pr(>F)
## group        2   58.2   29.11   1.768  0.178
## Residuals   77 1268.2   16.47               
## [1] "Column: NI_(GCL-IPL)"
##             Df Sum Sq Mean Sq F value Pr(>F)
## group        2     16    8.06   0.112  0.894
## Residuals   77   5521   71.70               
## [1] "Column: NI_INL"
##             Df Sum Sq Mean Sq F value Pr(>F)
## group        2   70.3   35.16   1.656  0.198
## Residuals   77 1635.2   21.24               
## [1] "Column: NI_ORT"
##             Df Sum Sq Mean Sq F value Pr(>F)
## group        2     75   37.31   0.475  0.623
## Residuals   77   6044   78.49               
## [1] "Column: NO_TOT"
##             Df Sum Sq Mean Sq F value Pr(>F)
## group        2    255   127.5   0.543  0.583
## Residuals   77  18078   234.8               
## [1] "Column: NO_NFL"
##             Df Sum Sq Mean Sq F value Pr(>F)
## group        2     41   20.68   0.364  0.696
## Residuals   77   4372   56.77               
## [1] "Column: NO_(GCL-IPL)"
##             Df Sum Sq Mean Sq F value Pr(>F)
## group        2   25.5   12.77    0.34  0.713
## Residuals   77 2893.2   37.57               
## [1] "Column: NO_INL"
##             Df Sum Sq Mean Sq F value Pr(>F)
## group        2   18.8   9.384    1.25  0.292
## Residuals   77  578.2   7.509               
## [1] "Column: NO_ORT"
##             Df Sum Sq Mean Sq F value Pr(>F)
## group        2    218   109.2   0.537  0.587
## Residuals   77  15657   203.3               
## [1] "Column: II_TOT"
##             Df Sum Sq Mean Sq F value Pr(>F)
## group        2    472   235.9    0.96  0.387
## Residuals   77  18918   245.7               
## [1] "Column: II_NFL"
##             Df Sum Sq Mean Sq F value Pr(>F)
## group        2   27.4   13.68   0.821  0.444
## Residuals   77 1282.6   16.66               
## [1] "Column: II_(GCL-IPL)"
##             Df Sum Sq Mean Sq F value Pr(>F)
## group        2     31   15.54   0.206  0.814
## Residuals   77   5797   75.28               
## [1] "Column: II_INL"
##             Df Sum Sq Mean Sq F value Pr(>F)
## group        2   58.4   29.19   1.631  0.202
## Residuals   77 1378.3   17.90               
## [1] "Column: II_ORT"
##             Df Sum Sq Mean Sq F value Pr(>F)
## group        2     94   46.89   0.538  0.586
## Residuals   77   6714   87.20               
## [1] "Column: IO_TOT"
##             Df Sum Sq Mean Sq F value Pr(>F)
## group        2    344   172.0    0.82  0.444
## Residuals   77  16141   209.6               
## [1] "Column: IO_NFL"
##             Df Sum Sq Mean Sq F value Pr(>F)
## group        2     24   11.76   0.262   0.77
## Residuals   77   3451   44.81               
## [1] "Column: IO_(GCL-IPL)"
##             Df Sum Sq Mean Sq F value Pr(>F)
## group        2   21.7   10.83   0.302   0.74
## Residuals   77 2763.1   35.88               
## [1] "Column: IO_INL"
##             Df Sum Sq Mean Sq F value Pr(>F)
## group        2   20.5  10.251   2.007  0.141
## Residuals   77  393.4   5.109               
## [1] "Column: IO_ORT"
##             Df Sum Sq Mean Sq F value Pr(>F)
## group        2    208   104.1   0.463  0.631
## Residuals   77  17313   224.8               
## [1] "Column: TI_TOT"
##             Df Sum Sq Mean Sq F value Pr(>F)
## group        2    743   371.3   1.464  0.238
## Residuals   77  19536   253.7               
## [1] "Column: TI_NFL"
##             Df Sum Sq Mean Sq F value Pr(>F)
## group        2   6.53   3.267   0.799  0.453
## Residuals   77 314.67   4.087               
## [1] "Column: TI_(GCL-IPL)"
##             Df Sum Sq Mean Sq F value Pr(>F)
## group        2    109   54.69   0.649  0.525
## Residuals   77   6486   84.24               
## [1] "Column: TI_INL"
##             Df Sum Sq Mean Sq F value Pr(>F)
## group        2   54.2   27.12   1.703  0.189
## Residuals   77 1226.5   15.93               
## [1] "Column: TI_ORT"
##             Df Sum Sq Mean Sq F value Pr(>F)
## group        2     37   18.66   0.266  0.767
## Residuals   77   5405   70.19               
## [1] "Column: TO_TOT"
##             Df Sum Sq Mean Sq F value Pr(>F)
## group        2    385   192.3   0.897  0.412
## Residuals   77  16509   214.4               
## [1] "Column: TO_NFL"
##             Df Sum Sq Mean Sq F value Pr(>F)
## group        2    8.2   4.098   0.922  0.402
## Residuals   77  342.3   4.445               
## [1] "Column: TO_(GCL-IPL)"
##             Df Sum Sq Mean Sq F value Pr(>F)
## group        2   86.2   43.11   1.211  0.303
## Residuals   77 2740.7   35.59               
## [1] "Column: TO_INL"
##             Df Sum Sq Mean Sq F value Pr(>F)
## group        2   12.3   6.161   1.145  0.324
## Residuals   77  414.4   5.382               
## [1] "Column: TO_ORT"
##             Df Sum Sq Mean Sq F value Pr(>F)
## group        2     47   23.32   0.359  0.699
## Residuals   77   4999   64.92
print(p_values)
##              Met            p-value
## 1        CSF_TOT 0.0242315563032527
## 2        CSF_NFL  0.332601670228879
## 3  CSF_(GCL-IPL)  0.104813940197745
## 4        CSF_INL 0.0649038143497993
## 5        CSF_ORT  0.768794260212161
## 6         SI_TOT  0.490564491260597
## 7         SI_NFL  0.362703476652037
## 8   SI_(GCL-IPL)  0.838724128959173
## 9         SI_INL  0.451781760035883
## 10        SI_ORT  0.585908445631224
## 11        SO_TOT  0.509257840354474
## 12        SO_NFL  0.657885384999966
## 13  SO_(GCL-IPL)  0.107810485087837
## 14        SO_INL  0.755360207389951
## 15        SO_ORT  0.788137521214331
## 16        NI_TOT  0.188861950544311
## 17        NI_NFL  0.177614191369207
## 18  NI_(GCL-IPL)   0.89384567724524
## 19        NI_INL  0.197682925112661
## 20        NI_ORT  0.623487195680646
## 21        NO_TOT  0.583070104446787
## 22        NO_NFL   0.69595743667068
## 23  NO_(GCL-IPL)  0.712915673197315
## 24        NO_INL  0.292339103279001
## 25        NO_ORT  0.586634156213284
## 26        II_TOT   0.38730970747262
## 27        II_NFL  0.443801666234344
## 28  II_(GCL-IPL)  0.813981134625203
## 29        II_INL  0.202446758788322
## 30        II_ORT  0.586263296048976
## 31        IO_TOT  0.444053166071706
## 32        IO_NFL  0.769866773086835
## 33  IO_(GCL-IPL)  0.740285373751813
## 34        IO_INL  0.141427514840015
## 35        IO_ORT  0.631106787254248
## 36        TI_TOT  0.237765937638517
## 37        TI_NFL  0.453310015375032
## 38  TI_(GCL-IPL)  0.525309660262923
## 39        TI_INL  0.189001278958338
## 40        TI_ORT  0.767251774877591
## 41        TO_TOT  0.412044293626272
## 42        TO_NFL  0.402129568930579
## 43  TO_(GCL-IPL)  0.303449308302904
## 44        TO_INL  0.323647370922986
## 45        TO_ORT  0.699425589751751
write.csv(p_values, "ANOVA_ret_pValues.csv", row.names = TRUE, col.names = TRUE)
## Warning in write.csv(p_values, "ANOVA_ret_pValues.csv", row.names = TRUE, :
## attempt to set 'col.names' ignored

total retinal thickness

# Create an empty list to store the ANOVA test results
anova_results <- list()
cols_ind <- seq(23, length = 9, by = 5)
ret_list <- colnames(df.imp.long)[cols_ind]
p_values <- as.data.frame(cbind(ret_list, rep(NA, length(ret_list))))
colnames(p_values) <- c("Met", "p-value")
# Loop through each column in the vector and perform the ANOVA test
for (col in ret_list) {
  my_formula <- formula(paste("`", col, "`", " ~ group", sep = ""))
  anova_results[[col]] <- aov(my_formula, data = df.imp.long)
}

# Extract the relevant information from the ANOVA test results
for (col in ret_list) {
  anova_result <- anova_results[[col]]
  print(paste("Column:", col))
  print(summary(anova_result))
  p_values[p_values$Met==col, "p-value"] <- summary(anova_result)[[1]][["Pr(>F)"]][[1]]
}
## [1] "Column: CSF_TOT"
##             Df Sum Sq Mean Sq F value Pr(>F)  
## group        2   4631  2315.7   3.906 0.0242 *
## Residuals   77  45654   592.9                 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## [1] "Column: SI_TOT"
##             Df Sum Sq Mean Sq F value Pr(>F)
## group        2    309   154.3   0.719  0.491
## Residuals   77  16533   214.7               
## [1] "Column: SO_TOT"
##             Df Sum Sq Mean Sq F value Pr(>F)
## group        2    276   138.0   0.681  0.509
## Residuals   77  15612   202.8               
## [1] "Column: NI_TOT"
##             Df Sum Sq Mean Sq F value Pr(>F)
## group        2    798   398.8   1.703  0.189
## Residuals   77  18028   234.1               
## [1] "Column: NO_TOT"
##             Df Sum Sq Mean Sq F value Pr(>F)
## group        2    255   127.5   0.543  0.583
## Residuals   77  18078   234.8               
## [1] "Column: II_TOT"
##             Df Sum Sq Mean Sq F value Pr(>F)
## group        2    472   235.9    0.96  0.387
## Residuals   77  18918   245.7               
## [1] "Column: IO_TOT"
##             Df Sum Sq Mean Sq F value Pr(>F)
## group        2    344   172.0    0.82  0.444
## Residuals   77  16141   209.6               
## [1] "Column: TI_TOT"
##             Df Sum Sq Mean Sq F value Pr(>F)
## group        2    743   371.3   1.464  0.238
## Residuals   77  19536   253.7               
## [1] "Column: TO_TOT"
##             Df Sum Sq Mean Sq F value Pr(>F)
## group        2    385   192.3   0.897  0.412
## Residuals   77  16509   214.4
print(p_values)
##       Met            p-value
## 1 CSF_TOT 0.0242315563032527
## 2  SI_TOT  0.490564491260597
## 3  SO_TOT  0.509257840354474
## 4  NI_TOT  0.188861950544311
## 5  NO_TOT  0.583070104446787
## 6  II_TOT   0.38730970747262
## 7  IO_TOT  0.444053166071706
## 8  TI_TOT  0.237765937638517
## 9  TO_TOT  0.412044293626272
write.csv(p_values, "ANOVA_tot_pValues.csv", row.names = TRUE, col.names = TRUE)
## Warning in write.csv(p_values, "ANOVA_tot_pValues.csv", row.names = TRUE, :
## attempt to set 'col.names' ignored

TODO: 1. histograms for retinal thickness 2. descriptive by 3 groups? 3. missing values for metabolic measures (REPLACE WITH MEDIAN FOR NOW) 4. A heatmap showing correlations between selected metabolic parameters and retinal thickness values in each of the anatomical locations to select predictors.